OWIN身份验证的新手,发现很难创建我自己的owin声明类型.
继承人的事情.我需要添加像"GroupID"这样的自定义声明,这样我就可以在不同的页面上轻松访问它.
我在登录时做了类似的事情
public ActionResult Login(LoginViewModel model, string returnUrl)
{
UserViewModel userModel = new UserViewModel();
if (!ModelState.IsValid)
{
return View(model);
}
if(CommonHelper.ValidateADUser(model.Username,model.Password))
{
UserViewModel curUser = userModel.GetUserDetails(model.Username);
if (curUser != null)
{
var claims = new List<Claim>();
claims.Add(new Claim(ClaimTypes.WindowsAccountName, curUser.Username));
claims.Add(new Claim(ClaimTypes.Name,curUser.Fullname));
claims.Add(new Claim(ClaimTypes.Role, ""));
claims.Add(new Claim("GroupID", curUser.UserGroupID.ToString()));
var id = new ClaimsIdentity(claims, DefaultAuthenticationTypes.ApplicationCookie);
var ctx = Request.GetOwinContext();
AuthenticationManager.SignIn(id);
return RedirectToAction("Index", "Home");
}
}
else
{
ModelState.AddModelError("", "Invalid login attempt.");
}
return View(model);
}
Run Code Online (Sandbox Code Playgroud)
在我的登录部分,我试图通过这样做获得价值
public ActionResult _LoginPartial()
{
var …Run Code Online (Sandbox Code Playgroud) 好的,我有一个Jquery json调用.看起来有点像这样.
$('#StockInvetoryReportList').dataTable({
"filter": false,
"bLengthChange": false,
"bPaginate": false,
"bProcessing": true,
"bServerSide": true,
"sAjaxSource": "@Url.Action("GetStockInventoryBalance", "Reports")",
"aoColumns": [{ "mData": "Date"},
{ "mData": "Name" },
{ "mData": "Quantity" },
{ "mData": "isSummary" }
],
"fnServerParams": function (aoData) {
aoData.push({ "name" : "StockNo", "value": $('#MaterialName').val() }),
{ "name": "ReportDate", "value": $('#ReportDate').val() };
}
});
Run Code Online (Sandbox Code Playgroud)
它会生成此表:
+------------+---------+----------+------------+
| Date | Name | Quantity | Is Summary |
+------------+---------+----------+------------+
| 10/01/2015 | Wire | 500 | False |
+------------+---------+----------+------------+
| 10/05/2015 | Wire | …Run Code Online (Sandbox Code Playgroud) 所以继承我的问题.我有一个带有基于表单的身份验证的Asp.net应用程序.我的数据库中有用户,但用户也必须在活动目录中.
以下代码供我检查用户是否在域A中
DirectoryEntry de = new DirectoryEntry();
de.Path = "LDAP://domainA.com";
de.AuthenticationType = AuthenticationTypes.None;
DirectorySearcher search = new DirectorySearcher(de);
search.Filter = "(SAMAccountName=" + account + ")";
search.PropertiesToLoad.Add("displayName");
SearchResult result = search.FindOne();
Run Code Online (Sandbox Code Playgroud)
这段代码很好用.问题是客户端请求域B也应该能够连接到应用程序.所以创建了以下代码:
DirectoryEntry de = new DirectoryEntry();
de.Path = "LDAP://domainB.com";
de.AuthenticationType = AuthenticationTypes.None;
DirectorySearcher search = new DirectorySearcher(de);
search.Filter = "(SAMAccountName=" + account + ")";
search.PropertiesToLoad.Add("displayName");
SearchResult result = search.FindOne();
Run Code Online (Sandbox Code Playgroud)
由于我的服务器在域A中,这不起作用.知道服务器在domainA中,有没有办法让我查询domainB?我发现一篇文章说要为domainA和B设置信任,但这个域名不应该被链接.它仅适用于此应用程序,因此需要此功能.
PS我可能忘了解释一个重要的细节.domainA和B不在同一网络上.但是domainA可以ping通domainB
我希望能够在提示用户之后以编程方式检查此选项

就像是
if (android.systemtime==false)
{
systemtime=true;
}
Run Code Online (Sandbox Code Playgroud)
这可能吗?任何帮助,将不胜感激
因此,我们的项目团队中有6个人。1个Techlead和1个助理Techlead。
在我们的分支机构策略中,我们希望设置为只有Techlead和Assistant Techlead才能批准拉取请求。如果对方休假,我们只需要得到他们的1个批准即可避免瓶颈。
问题是分支策略设置中只有2个选择。
A.指定所需的批准者数量(由于正常的开发人员也可以批准,因此将不起作用)
B.指定要批准的实际人员(将不起作用,因为这两个步骤都是必需的,并且在一个人休假时会造成瓶颈)
有人可以向我们指出正确的方向吗?