3

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

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

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

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

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

干杯!

4

3 回答 3

2

您可以随心所欲地授权您的用户。FormAuthentication 用于设置会话身份和身份验证 cookie,允许用户在注销或会话过期之前保持登录状态。您无需使用成员资格提供程序即可使用 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 基础架构。请注意,由于您的网站只需要在编辑时授权,因此您需要设置允许每个人阅读所有页面的权限,并实现您自己的逻辑,以便在他们想要编辑时将他们重定向到登录页面。

更多信息在这里

于 2008-11-15T00:52:52.197 回答
0

请注意,您可以利用 ASP.Net 表单身份验证并实现您自己的成员资格提供程序,该提供程序将读取/写入您现有的表。

于 2008-11-15T01:46:04.850 回答
0

我还从 ASP.NET Web 项目开箱即用的默认表单身份验证开始。但是,我也对该股票数据库中表的过度构建功能感到非常沮丧。

在我的工作经验中,我使用了自定义构建的身份验证,并且只是在会话变量中携带了登录的用户配置文件(自行创建)。

asp.net 成员资格也很难移植到某些共享托管服务提供商。

于 2008-11-15T01:52:38.193 回答