转译几行代码,正解即结贴

tiantian1980 2009-12-12 08:39:00
登陆时,进行from验证后能转到指定的b.aspx页面,怎么改这一行代码FormsAuthentication.RedirectFromLoginPage(idName, AutoLogin.Checked),让其from验证后能跳转指定的页面。
login.aspx页的按纽事件有如下代码:
   string sPassword = new API().tools.MD5(this.Password.Text.ToString());
object userID = DB.user_login( PageBoardID, UserName.Text, sPassword );//根据用户名获取用户ID
if (Session["CheckCode"].ToString().ToUpper() == this.Txt_imgCode.Value)//验证码识别
{
if (userID != DBNull.Value)
{
string idName = string.Format("{0};{1};{2}", userID, PageBoardID, UserName.Text);

if (Request.QueryString["ReturnUrl"] != null)
{
FormsAuthentication.RedirectFromLoginPage(idName, AutoLogin.Checked);//这里怎么form验证后跳转到其化页面,比如说b.aspx,但要完成login.aspx的登陆
}
else
{
FormsAuthentication.SetAuthCookie(idName, AutoLogin.Checked););//这里怎么form验证后跳转到其化页面,比如说b.aspx,但要完成login.aspx的登陆

Forum.Redirect(Pages.forum);
}
}
else
{
AddLoadMessage(GetText("password_error"));
}
...全文
80 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
mzjmicrosoft 2009-12-12
  • 打赏
  • 举报
回复
使用这个

Formsauthentication.RedirectFromloginpage(String,[true|false])

你必须在webcofig里设置下

<authentication mode=”Forms”>
<forms name=”.mycookie” path=”/” loginUrl=”要验证的页面.aspx” protection=”All”
timeout=”40” />
</authentication>
如果是true就会自动跳转到你前面访问的那个页面的
mzjmicrosoft 2009-12-12
  • 打赏
  • 举报
回复
Form验证基本原理:

1、WebCofig中配置:
<authentication mode=”Forms”>
<forms name=”.mycookie” path=”/” loginUrl=”要验证的页面.aspx” protection=”All”
timeout=”40” />
</authentication>

2、

protected void LoginCallback(object sender, EventArgs e)
{
if (Helpers.ValidateUser(UserName.Text, Password.Text))
{
//获取用户的角色
string rolenames = Helpers.GetRolesForUser(UserName.Text);

//创建身份验证票据
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1,
UserName.Text, DateTime.Now, DateTime.Now.AddSeconds(40), false, roles);

//加密票据
string encryptedTicket = FormsAuthentication.Encrypt(ticket);

//创建新的cookie
HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName);

//把加密后的票据信息放入cookie
cookie.Value = encryptedTicket;

//把cookie添加到响应流中
Response.Cookies.Add(cookie);

//把cookie发送到客户端
Response.Redirect(FormsAuthentication.GetRedirectUrl(UserName.Text,false),true);

}
}

这样我们的浏览器中就有了身份验证的cookie了

基本思想如下:
1.验证用户是否存在,
2.如果存在,同时获取用户的角色
3.创建身份验证票据和cookie,并且发送到客户端的浏览器中

yanm7788 2009-12-12
  • 打赏
  • 举报
回复
看是不是就在web.config里配置就可以了
http://msdn.microsoft.com/en-us/library/532aee0e.aspx
limit_clear 2009-12-12
  • 打赏
  • 举报
回复
dd

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧