使用表单例份验证与无身份验证的 ASP.NET 登录网站

标签 asp.net forms-authentication

我有一个标准的 ASP.NET 网站。任何人都可以阅读/查看任何页面(管理部分除外),但是当有人想要贡献时,他们需要登录。就像大多数贡献网站一样。

那么,如果我有自己的登录控件或用户名/密码/提交输入字段,为什么我要打开表单例份验证而不是完全不打开?表单例份验证给了我什么,它有我自己的代码来检查我的数据库中的用户/通行证和我自己的两个输入字段+一个提交按钮,这项工作完美吗?

(注意:我真的不喜欢在数据库中创建所有这些表和 usp 的 asp.net 成员(member)资格,所以请不要建议我使用它)。

就像,使用我的代码,当我验证用户身份(使用我自己的数据库代码)时,我手动创建自己的身份等。

这一切都需要吗?这样做的主要目的是什么?

干杯!

最佳答案

您可以按照自己的意愿授权您的用户。 FormAuthentication 用于设置 session 身份和身份验证 cookie,允许用户在注销或 session 过期之前保持登录状态。您不需要通过成员资格提供程序来使用 FormsAuthentication。听起来您只是在复制此功能。

...do your authentication against your DB or Active Directory

if (Request.QueryString["ReturnUrl"] != null)
{
    FormsAuthentication.RedirectFromLoginPage(userName.Text, false);
}
else
{
    FormsAuthentication.SetAuthCookie(userName.Text, false);
}

然后您需要在 web.config 中进行设置以使用它

<system.web>
  <authentication mode="Forms">
    <forms loginUrl="Login.aspx"
           protection="All"
           timeout="30"
           name="my-auth-cookie" 
           path="/"
           requireSSL="false"
           slidingExpiration="true"
           defaultUrl="default.aspx" />
  </authentication>
</system.web>

您可以获得自己授权的所有好处,而不必实现 cookie 基础设施。请注意,由于您的网站仅在编辑时需要授权,因此您需要设置允许每个人读取所有页面的权限,并实现您自己的逻辑,以在他们想要编辑时将他们重定向到登录页面。

更多信息here .

关于使用表单例份验证与无身份验证的 ASP.NET 登录网站,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/291888/

相关文章:

asp.net - 使用 JQUERY 将 JSON 结果添加到下拉列表

javascript - 如何从后面的代码传递 JavaScript 函数中的逗号分隔字符串?

css - 页面加载时 asp.net 导航菜单样式不正确

c# - 从本土表单例份验证转移到 AD 的策略是什么?

c# - RoleManagerModule 和 RolePrincipal 对象

ASP.Net Web API 与 WCF - Web API 是否可用于为单例 WCF 服务提供基于 REST 的通信?

c# - 如何使用 Quartz.Net 暂停/恢复作业

asp.net - 如何在 IIS 7.0 中允许混合模式身份验证

.net - 为什么 FormsAuthentication.RedirectFromLoginPage() 以 context.Response.Redirect(..., false) 结尾?

c# - ASP.NET 表单例份验证 - 重定向太多