我想session variables
在我的 WebMatrix 网页中使用。
由于未知的原因,它们是not available accross the pages
(仅限于定义它们的页面)。
在我的登录页面中,代码部分:
if (WebSecurity.Login(userName, password, rememberMe)) {
// Session variable holding the UserType
var db = Database.Open("MyDatabase");
var userTypeData = db.QuerySingle("SELECT Name FROM UserTypes INNER JOIN UserProfiles ON UserProfiles.UserTypeId = UserTypes.UserTypeId WHERE UserId = @0",WebSecurity.CurrentUserId);
Session ["UserType"] = userTypeData.Name;
// Eventual redirection to the previous URL
var returnUrl = Request.QueryString["ReturnUrl"];
if (returnUrl.IsEmpty()) {
Response.Redirect("~/auth/authenticated");
}
else {
Context.RedirectLocal(returnUrl);
}
"Cannot perform runtime binding on a null reference"
因此,如果始终存在 UserType,我会到达这里。这是第一个问题。
在我被重定向的“身份验证”页面中,如果我使用完全相同的查询和会话变量定义,我可以将其显示为:
You are a user of type: @Session["UserType"] -> HTML section
在其他页面上,我试图通过会话变量“显示或隐藏(更新)按钮”。
@if (Session["UserType"]=="here the variable value; a string") {
<a class="linkbutton" href="condoedit?condoId=@condoData.CondoId">Update</a>
}
按钮永远不会显示为session variable appears to be empty
!!