三个页面a,b,c
a是正在操作的页面
b是a页面提交操作后要跳转的页面
c是登陆页面情况是这样的,a 要跳转到b,但需要检测是否登陆,如果没登陆则要跳到c ,在c登陆后又要自动跳到b.当然,还有很多情况,如d(同a)要跳到e(同b),也要检测是否登陆。就是说c 是公用的。
这种情况怎么处理呢?
a是正在操作的页面
b是a页面提交操作后要跳转的页面
c是登陆页面情况是这样的,a 要跳转到b,但需要检测是否登陆,如果没登陆则要跳到c ,在c登陆后又要自动跳到b.当然,还有很多情况,如d(同a)要跳到e(同b),也要检测是否登陆。就是说c 是公用的。
这种情况怎么处理呢?
if 未登陆
Response.Redirect("c.aspx?returnurl="+Server.UrlEnCode(Request.Url.ToString()));
C中登陆后strurl=Server.UrlDeCode(Request.QueryString["returnurl"]);
Response.Redirect(strurl);
<authentication mode="Forms">
<forms name="login" path="/" loginUrl="login.aspx" protection="All" timeout="60"></forms>
</authentication>2.login页面(你的c页面)中判断用户身份之后,使用
FormsAuthentication.RedirectFromLoginPage("Username",false);
转跳回原页面(需要检测是否登陆,如果没登陆则要跳到c ,在c登陆后又要自动跳到b.)
那有的页面不需要验证呢?这样的话,系统对每个页面都验证了啊。
if (session["username"] == null)
Response.Redirect("c.aspx")
else
//其他处理你如果有很多页面又不想每次判断SESSION,那你就做个用户控件,把上面的代码放到它的Page_Load()里面,需要的页面就把这个用户控件加上就可以了。
1.用formauthentication方式认证,在web.config里加入://login.aspx换成你的c页面。
<authentication mode="Forms">
<forms name="login" path="/" loginUrl="login.aspx" protection="All" timeout="60"></forms>
</authentication>2.login页面(你的c页面)中判断用户身份之后,使用
FormsAuthentication.RedirectFromLoginPage("Username",false);
转跳回原页面(需要检测是否登陆,如果没登陆则要跳到c ,在c登陆后又要自动跳到b.)
===================================================
2中的Username是什么呢?在login页面中可能需要处理登陆事件,验证通过后需要自动跳转回b页面。你说的protection="all",如果是有两个页面是否写成,protection="c.aspx" protection="e.aspx"呢?请指教。
我加了你的1,但是a为什么会跳到c页面呢?什么条件。
用了这种验证方法只能保护整个应用程序,不能选择几个页面来保护。
如果你要实现保护部分页面还是用Session来保存用户信息,然后自己处理登陆事件。Username就是登陆的用户名,一般的情况下就用用户登陆时输入的用户名即可。