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

时间:2008-11-15 00:40:03

标签: asp.net forms-authentication

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

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

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

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

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

喝彩!

3 个答案:

答案 0 :(得分: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基础架构。请注意,由于您的网站只需要在编辑时进行授权,因此您需要设置权限,允许每个人阅读所有页面并实现您自己的逻辑,以便在他们想要编辑时将其重定向到登录页面。

更多信息here

答案 1 :(得分:0)

请注意,您可以利用ASP.Net表单身份验证和 implement your own membership provider 来读取/写入现有表。

答案 2 :(得分:0)

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

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

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