我有一个标准的 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/