我使用的是VSTS 2008 + C#+.Net 3.5 + ASP.Net + IIS 7.0.我正在实施Forms身份验证.
我想知道在Forms身份验证中,如何检查用户是否已经过身份验证?
为什么HttpContext.Current.User.IsInRole("Customer")如果用户没有登录则返回false,我认为因为用户被认为是匿名的,这种情况,正确吗?
谢谢
身份验证后,asp.net将我的用户重定向到.../myapp/default.aspx而不是.../myapp /
有没有办法解决这个问题?我认为这有点难看,更不用说在网址上包含额外的default.aspx了.
我已经尝试将以下代码放在我的default.aspx.cs page_load函数中,但它会导致重定向循环,因为它无法区分用户是否正在访问myapp /或myapp/default.aspx:
if (Request.RawUrl.ToLower().EndsWith("/default.aspx"))
Response.Redirect("./");
Run Code Online (Sandbox Code Playgroud)
谢谢!
我遇到一些问题,让我的网站在会话结束时(用户关闭浏览器)自动注销经过身份验证的用户.
这是我在web.config中的内容:
<authentication mode="Forms">
<forms name="AuthCookie" protection="All" loginUrl="~/default.aspx" path="/" cookieless="UseCookies" timeout="2592000"/>
</authentication>
<authorization>
<allow users="?" />
</authorization>
<membership defaultProvider="ASPPGSqlMembershipProvider" userIsOnlineTimeWindow="20">
<providers>
<clear />
<add name="AspNetSqlMemberShipProvider" applicationName="umbraco4" type="System.Web.Security.SqlMembershipProvider" connectionStringName="UmbracoDb" requiresUniqueEmail="true" enablePasswordReset="true" enablePasswordRetrieval="false"/>
<add name="UsersMembershipProvider" applicationName="umbraco4" type="umbraco.providers.UsersMembershipProvider" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" />
<add name="ASPPGSqlMembershipProvider" applicationName="umbraco4"
passwordStrengthRegularExpression="" minRequiredPasswordLength="4" minRequiredNonalphanumericCharacters="0"
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresQuestionAndAnswer="false"
requiresUniqueEmail="true"
forumUpfileFolderPath="D:\www\files"
type="ASPPG.MembershipProviders.ASPPGSqlMembershipProvider, ASPPGSiteIntegrationPackage"/>
</providers>
</membership>
Run Code Online (Sandbox Code Playgroud)
这是我登录用户的方式:
if (Membership.ValidateUser(txtUserName.Text, txtPasssword.Text)) {
HttpCookie cookie = FormsAuthentication.GetAuthCookie(txtUserName.Text, false);
cookie.Expires = DateTime.Now.AddDays(1);
cookie.Domain = ConfigurationManager.AppSettings["Level2DomainName"];
HttpContext.Current.Response.Cookies.Add(cookie);
Response.Redirect(Request.Url.ToString());
}
Run Code Online (Sandbox Code Playgroud)
当我关闭浏览器时,用户仍然登录.如何通过选项让网站忘记用户,以便用户自己决定网站是否应该记住?
提前致谢 :)
中号
我有一个ASP.NET MVC3项目,我需要为此实现身份验证.
要对用户进行身份验证,我希望将表单身份验证与存储用户名/密码的现有用户表一起使用.之后,使用GlobalActionFilterAttribute,我会检查用户是否可以访问他想要的数据.
那么,我如何轻松地使用个人表格实现表单身份验证?
提前致谢.
我们正在运行IIS7并启用了Windows身份验证.其他一切都被禁用了.当我们转到页面时,我们不会提示我们进行Windows登录,但是会被重定向到默认的表单身份验证登录页面(帐户/登录?ReturnUrl =%2f).
有任何想法吗?谢谢.
asp.net iis-7 forms-authentication windows-authentication windows-server-2008-r2
我有一个使用Forms身份验证的ASP.NET MVC 3 Web应用程序.为帐户登录启用https需要采取哪些基本步骤?我在Windows Server 2008 R2上使用IIS 7.5
我需要一个ASP.NET Web应用程序,不允许多次登录同一个用户.我认为这是为了防止人们共享用户名和密码.
我遇到的问题是,除非用户明确退出系统,否则很难判断他是否仍然登录并使用系统.
因此,我能想到实现这一目标的唯一可靠方法是每次用户与系统进行交互时将用户ID,IP地址和时间戳记录到数据库,并锁定其他人,如果他们尝试不是来自该IP地址的人并在此表中记录的最后一个日期的十分钟内登录.
谁能想到更好的方法来管理这个?
我正在尝试获取特定用户的角色列表(不是当前登录的用户).
我想出了如何做到这一点:
var theUser = Membership.GetUser(username)
Run Code Online (Sandbox Code Playgroud)
但这只返回一个MembershipUser对象,它似乎没有isInRole方法.
如果我将用户名作为字符串,我如何获取角色列表,或检查用户是否处于特定角色?
我正在使用所有默认的身份验证和成员资格提供程序.
我知道有一些问题已经存在,但似乎没有一个问题可以解决我的问题.
我正在调试VB.NET webForms应用程序,我无法使用FormsAuthentication.SetAuthCookie工作(使用非持久性cookie).它似乎在我在一个监视窗口中检查它时创建了一个HttpContext.Current.User对象,它似乎创建了该对象,但没有创建它的"Identity"属性.
我已经阅读了一些SO帖子检查了基本的东西,比如看我的浏览器是否支持cookie等等......这个项目是我们早期项目的直接端口,它对这里列出的所有东西使用相同的代码,相对而言,它的工作正常.抛出异常的地方是从我的BLL代码调用它应该得到它.
以下是调用FormsAuthentication方法的代码......:
'When participant logs in having already created records in DB.
Protected Sub btnGo_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles btnGo.Click
If Me.txtUsername.Text.Trim.Length <> 0 AndAlso Me.txtPassword.Text.Trim.Length <> 0 Then
If Membership.ValidateUser(Me.txtUsername.Text, Me.txtPassword.Text) Then
FormsAuthentication.SetAuthCookie(Me.txtUsername.Text, False)
'This is where we run into trouble; the property checks with the forms auth...
MyBLL.Common.CurrentUser = New MyBLL.User(Me.txtUsername.Text)
'set site property..
If Site_ IsNot Nothing Then
MyBLL.Common.CurrentUser.Site = Me.Site_
End If
MyBLL.Common.CurrentParticpant = Nothing
MyBLL.Common.CurrentParticpantVisitID = -1
Response.Redirect("~/Apps/Dashboard.aspx", …Run Code Online (Sandbox Code Playgroud)