使用Sitecore成员资格提供程序时的用户身份验证的不同行为

时间:2014-05-05 18:24:44

标签: asp.net sitecore sitecore6 membership-provider

我正在使用asp.net登录控件和切换器来让我的用户对外部数据库进行身份验证。我现在明确引用我的会员提供商。

使用切换台:

var user = Membership.GetUser(Membership.GetUserNameByEmail(ApplicantLogin.UserName));
Membership.ValidateUser(user.UserName, ApplicantLogin.Password)

不使用切换台:

var userName = Membership.Providers["Extranet"].GetUserNameByEmail(ApplicantLogin.UserName);
var user = Membership.Providers["Extranet"].GetUser(userName, true)
Membership.Providers["Extranet"].ValidateUser(user.UserName, ApplicantLogin.Password)

我的网络配置中定义了Extranet。这两个示例似乎都可以使用我的切换器,一旦用户通过验证并通过身份验证,用户就会被重定向到我的DestinationPageUrl定义的URL。

如果不使用切换器,用户将获得身份验证,但由于某种原因未被重定向。我不确定为什么会这样。

如果我在验证用户后执行了response.redirect,那么也没有任何反应。它保留在登录页面上。

任何帮助都将不胜感激。

由于

1 个答案:

答案 0 :(得分:0)

您是否确定在不使用切换台时对用户进行了身份验证?您可以通过实施 OnAuthenticate事件

来调试此问题

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.login.authenticate(v=vs.100).aspx

一旦您确定用户经过了相应的身份验证,请尝试实施 LoggedIn事件,然后在那里添加 Response.Redirect()

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.login.loggedin(v=vs.110).aspx