我有一个标准的ASP.NET网站。任何人都可以阅读/查看任何页面(管理部分除外),但是当有人想要贡献时,他们需要登录。就像大多数贡献网站一样。
所以,如果我有自己的OWN登录控制或用户名/密码/提交输入字段,为什么我要打开表单身份验证而不是只打开?表单auth给了我什么,它有我自己的代码检查我的数据库的用户/通行证和我自己的两个输入字段+一个提交按钮,完美的工作?
(注意:我真的不喜欢在数据库中创建所有这些表和usp的asp.net会员资格,所以请不要建议我使用它。)
就像我的代码一样,当我验证用户(使用我自己的数据库代码)时,我会手动创建自己的身份等。
这一切都需要吗?这个的主要目的是什么?
喝彩!
答案 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成员资格也很难移植到某些共享托管服务提供商。