.net 4.5 web 表单 c# 在代码文件中找不到变量的上下文
.net 4.5 web forms c# Context of a variable isn't found in Codefile
我正在尝试构建 SAML 2.0 声明感知 Web 表单并获得 some code from MSDN。
我明白是什么问题了,就是不知道怎么解决:
cs 代码隐藏页面中的 signedIn 变量(和其他..)不知道它已定义并关联到 aspx 页面中的 asp 变量。
{名称 'signedIn' 在当前上下文中不存在}
我已经尝试调整继承值,Class 名称,我已经搜索了互联网和这个网站来寻找想法。 (这让我采取了构建 designer.cs 文件的步骤)仍然没有结果..(即使最后我会尝试将此解决方案转换为单文件页面模型,因为它会更容易供我实施。)
帮忙?
Default.aspx.cs:
using System;
using System.IdentityModel;
using System.Security.Claims;
using System.Threading;
using System.Web.UI;
namespace TestApp
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
ClaimsPrincipal claimsPrincipal = Thread.CurrentPrincipal as ClaimsPrincipal;
if (claimsPrincipal != null)
{
signedIn.Text = "You are signed in.";
foreach (Claim claim in claimsPrincipal.Claims)
{
//claimType.Text = claim.Type;
//claimValue.Text = claim.Value;
//claimValueType.Text = claim.ValueType;
//claimSubjectName.Text = claim.Subject.Name;
//claimIssuer.Text = claim.Issuer;
}
}
else
{
// signedIn.Text = "You are not signed in.";
}
}
}
}
Default.aspx:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title></title>
</head>
<body>
<h1><asp:label ID="signedIn" runat="server" /></h1>
<asp:label ID="claimType" runat="server" />
<asp:label ID="claimValue" runat="server" />
<asp:label ID="claimValueType" runat="server" />
<asp:label ID="claimSubjectName" runat="server" />
<asp:label ID="claimIssuer" runat="server" />
</body>
</html>
我已经有一段时间没有这样做了,但我发现启用日志记录是了解正在发生的事情的良好开端。可以在此处找到有关启用日志记录的一些说明:
尝试将日志命名为“.svclog”扩展名,然后可以在SvcTraceViewer工具中双击查看,这样更容易挖掘问题信息。此处有更多详细信息:
ClaimsPrincipal 公开了一组身份,每个身份都是一个 ClaimsIdentity。 ClaimsIdentity 实现 IIdentity,您可以从中使用 IsAuthenticated 属性 指示用户是否已通过身份验证。这是一个布尔 true/false 值。
解决方案:
杀死了整个 aspx 页面。通过工作室工具创建一个新的,然后将 aspx 和 cs 文件合并在一起。
仍然不确定哪里出了问题(继承链接不正确,等等)但代码正在编译..现在添加如上所述的日志记录功能,然后实际添加我自己的功能..
我正在尝试构建 SAML 2.0 声明感知 Web 表单并获得 some code from MSDN。
我明白是什么问题了,就是不知道怎么解决:
cs 代码隐藏页面中的 signedIn 变量(和其他..)不知道它已定义并关联到 aspx 页面中的 asp 变量。 {名称 'signedIn' 在当前上下文中不存在}
我已经尝试调整继承值,Class 名称,我已经搜索了互联网和这个网站来寻找想法。 (这让我采取了构建 designer.cs 文件的步骤)仍然没有结果..(即使最后我会尝试将此解决方案转换为单文件页面模型,因为它会更容易供我实施。)
帮忙?
Default.aspx.cs:
using System;
using System.IdentityModel;
using System.Security.Claims;
using System.Threading;
using System.Web.UI;
namespace TestApp
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
ClaimsPrincipal claimsPrincipal = Thread.CurrentPrincipal as ClaimsPrincipal;
if (claimsPrincipal != null)
{
signedIn.Text = "You are signed in.";
foreach (Claim claim in claimsPrincipal.Claims)
{
//claimType.Text = claim.Type;
//claimValue.Text = claim.Value;
//claimValueType.Text = claim.ValueType;
//claimSubjectName.Text = claim.Subject.Name;
//claimIssuer.Text = claim.Issuer;
}
}
else
{
// signedIn.Text = "You are not signed in.";
}
}
}
}
Default.aspx:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title></title>
</head>
<body>
<h1><asp:label ID="signedIn" runat="server" /></h1>
<asp:label ID="claimType" runat="server" />
<asp:label ID="claimValue" runat="server" />
<asp:label ID="claimValueType" runat="server" />
<asp:label ID="claimSubjectName" runat="server" />
<asp:label ID="claimIssuer" runat="server" />
</body>
</html>
我已经有一段时间没有这样做了,但我发现启用日志记录是了解正在发生的事情的良好开端。可以在此处找到有关启用日志记录的一些说明:
尝试将日志命名为“.svclog”扩展名,然后可以在SvcTraceViewer工具中双击查看,这样更容易挖掘问题信息。此处有更多详细信息:
ClaimsPrincipal 公开了一组身份,每个身份都是一个 ClaimsIdentity。 ClaimsIdentity 实现 IIdentity,您可以从中使用 IsAuthenticated 属性 指示用户是否已通过身份验证。这是一个布尔 true/false 值。
解决方案:
杀死了整个 aspx 页面。通过工作室工具创建一个新的,然后将 aspx 和 cs 文件合并在一起。
仍然不确定哪里出了问题(继承链接不正确,等等)但代码正在编译..现在添加如上所述的日志记录功能,然后实际添加我自己的功能..