我在页面上有一个usercontrol,其中包含登录控件。这将控制另一个用户控件的显示(如果用户未登录,则获取登录控件用户控件)。我有一些验证码(见下文),当用户点击“登录”按钮时运行。基本上我希望它回发到同一页面,以便他们登录并能够现在看到其他受保护的用户控件。此代码无效。也许在另一个页面上发生的事情使得这个不起作用,但是这个代码本身看起来应该有用吗?
string userName = Membership.GetUserNameByEmail(Login1.UserName);
if (userName != null)
{
e.Authenticated = Membership.ValidateUser(userName, Login1.Password);
}
else
{
e.Authenticated = false;
}
if (e.Authenticated)
{
Login1.UserName = userName;
ImageButton loginButton = (ImageButton)Login1.FindControl("LoginButton");
if (loginButton != null)
{
//loginButton.PostBackUrl = Request.Url.ToString();
Response.Redirect(Request.Url.ToString());
}
}
答案 0 :(得分:1)
问题是登录控件本身会在网址(无cookie)中重定向设置cookie或加密的身份验证票证。
我认为登录控件有一些属性,您可以告诉它将重定向到哪里(它会覆盖web.config中的那个)。
答案 1 :(得分:1)
DestinationPageUrl是属性... soo Login1.DestinationPageUrl =“〜/ whatever.aspx”;