做单点登录的时候,遇到几个问题及解决方法:
(1):纯html控件,如 <input type="text" name="name" id="text1" />
的值在后台cs中的获取方式:
[1]:将控件声明为服务器控件:runat="server",然后在后台cs代码中直接:this.text1.Value
[2]: 通过request.form["name"]值获取,不过方式是:只读
[3]: 或者在cs代码中,声明:protected System.Web.UI.HtmlControls.HtmlInputText text1; 然后this.text1.Value
(2):单点登录过后,将用户GUID存于viewstate中,可以通过((Mix.Core.Web.Base.MasterPage)Page.Master).UserGuid; 获得;
(3) 用户绝对路径,相对路径,屋里路径:
查看HttpContext源码,其中封装了request,response等用于页面信息交互的对象,
其中主要看了一下request的方法和相关属性:
下面例子: 调转到space.aspx页面:
string url1 = System.Web.HttpContext.Current.Request.Url.Scheme + "://" + System.Web.HttpContext.Current.Request.Url.Authority + System.Web.HttpContext.Current.Request.ApplicationPath;
或者System.Web.HttpContext.Current.Request.Url.Scheme + "://" + System.Web.HttpContext.Current.Request.Url.Host + Server.HtmlEncode(Request.ApplicationPath);
两者是等价的,其中获取当前页面的虚拟路径有不同的方法,一般采用Server.HtmlEncode(request.Path)