无责任Windows Azure SDK .NET开发入门篇三[使用Azure AD 管理用户信息--3.3 Details用户详细信息]
3.3 Details用户详细信息
用户详细信息是通过objectId获取。代码如下
public async Task<ActionResult> Details(string objectId)
{
try
{
ActiveDirectoryClient client = AuthenticationHelper.GetActiveDirectoryClient();
var user = (User)await client.Users.GetByObjectId(objectId).ExecuteAsync();
return View(user);
}
catch (Exception e)
{
if (e.Message == "Authorization Required.")
{
HttpContext.GetOwinContext().Authentication.Challenge(OpenIdConnectAuthenticationDefaults.AuthenticationType);
}
return View();
}
}
对应的View代码如下
@model Microsoft.Azure.ActiveDirectory.GraphClient.User
@{
ViewBag.Title = "UserDetails";
}
<h2>User Details</h2>
<div class="form-horizontal">
<div class="form-group">
@Html.LabelFor(model => model.UserPrincipalName, "用户名(全名)", new { @class = "col-sm-2 control-label" })
<div class="col-sm-10">
@Html.DisplayFor(model => model.UserPrincipalName)
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.MailNickname, "别名", new { @class = "col-sm-2 control-label" })
<div class="col-sm-10">
@Html.DisplayFor(model => model.MailNickname)
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.City, "城市", new { @class = "col-sm-2 control-label" })
<div class="col-sm-10">
@Html.DisplayFor(model => model.City)
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.Country, "国家或地区", new { @class = "col-sm-2 control-label" })
<div class="col-sm-10">
@Html.DisplayFor(model => model.Country)
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.Department, "部门", new { @class = "col-sm-2 control-label" })
<div class="col-sm-10">
@Html.DisplayFor(model => model.Department)
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.DisplayName, "显示名称", new { @class = "col-sm-2 control-label" })
<div class="col-sm-10">
@Html.DisplayFor(model => model.DisplayName)
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.PhysicalDeliveryOfficeName, "办公室号码", new { @class = "col-sm-2 control-label" })
<div class="col-sm-10">
@Html.DisplayFor(model => model.PhysicalDeliveryOfficeName)
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.TelephoneNumber, "办公电话", new { @class = "col-sm-2 control-label" })
<div class="col-sm-10">
@Html.DisplayFor(model => model.TelephoneNumber)
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.GivenName, "名字", new { @class = "col-sm-2 control-label" })
<div class="col-sm-10">
@Html.DisplayFor(model => model.GivenName)
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.JobTitle, "职务", new { @class = "col-sm-2 control-label" })
<div class="col-sm-10">
@Html.DisplayFor(model => model.JobTitle)
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.PostalCode, "邮政编码", new { @class = "col-sm-2 control-label" })
<div class="col-sm-10">
@Html.DisplayFor(model => model.PostalCode)
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.State, "省/自治区/直辖市", new { @class = "col-sm-2 control-label" })
<div class="col-sm-10">
@Html.DisplayFor(model => model.State)
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.StreetAddress, "街道地址", new { @class = "col-sm-2 control-label" })
<div class="col-sm-10">
@Html.DisplayFor(model => model.StreetAddress)
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.Surname, "姓氏", new { @class = "col-sm-2 control-label" })
<div class="col-sm-10">
@Html.DisplayFor(model => model.Surname)
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.UserType, new { @class = "col-sm-2 control-label" })
<div class="col-sm-10">
@Html.DisplayFor(model => model.UserType)
</div>
</div>
</div>
<table>
<tbody>
<tr>
<td>
@Html.ActionLink("Edit", "Edit", new { objectId = Model.ObjectId }, new { @class = "btn btn-primary" })
</td>
<td>
@Html.ActionLink("Delete", "Delete", new { objectId = Model.ObjectId }, new { @class = "btn btn-warning" })
</td>
<td>
@Html.ActionLink("List", "Index", null, new { @class = "btn btn-info" })
</td>
</tr>
</tbody>
</table>
无责任Windows Azure SDK .NET开发入门篇三[使用Azure AD 管理用户信息--3.3 Details用户详细信息]的更多相关文章
- 无责任Windows Azure SDK .NET开发入门篇三[使用Azure AD 管理用户信息]
三.使用Azure AD管理用户信息 在上一章我们采用OpenID的方案和Azure AD交互进行身份验证,本章节我们继续了解如何在Azure AD中创建用户,列出用户信息,修改用户信息和删除用户信息 ...
- 无责任Windows Azure SDK .NET开发入门篇三[使用Azure AD 管理用户信息--3.4 Edit修改用户信息]
3.4 Edit修改用户信息 我们用FormCollection简化了表单提交,非常方便的进行用户信息修改. [HttpPost, Authorize] public async Task<Ac ...
- 无责任Windows Azure SDK .NET开发入门篇三[使用Azure AD 管理用户信息--3.2 Create创建用户]
3.2 Create创建用户 [HttpPost, Authorize] public async Task<ActionResult> Create( [Bind(Include = & ...
- 无责任Windows Azure SDK .NET开发入门篇三[使用Azure AD 管理用户信息--3.1 Index用户列表]
3.1 Index用户列表 或许当前域下的用户列表 [Authorize] public async Task<ActionResult> Index() { var userList = ...
- 无责任Windows Azure SDK .NET开发入门篇三[使用Azure AD 管理用户信息--3.5 Delete删除用户]
3.5 Delete删除用户 删除也是通过ObjectID获得对象进行删除 [Authorize] public async Task<ActionResult> Delete(strin ...
- 无责任Windows Azure SDK .NET开发入门篇二[使用Azure AD 进行身份验证-2.2身份验证开发]
2.2身份验证开发 在我们的案例中,我们是用户通过Web应用程序进行身份识别. 上面的图示说明了如下的一些概念 l Azure AD 是标识提供程序,负责对组织的目录中存在的用户和应用程序的标识进行验 ...
- 无责任Windows Azure SDK .NET开发入门篇二[使用Azure AD 进行身份验证]
二.使用Azure AD进行身份验证 之所以将Azure AD 作为开始,是应为基本上我们所有应用都需要进行安全管理.Azure Active Directory (Azure AD) 通过以下方式简 ...
- 无责任Windows Azure SDK .NET开发入门篇二[使用Azure AD 进行身份验证--2.1使用Azure AD需要了解几个概念]
2.1使用Azure AD需要了解几个概念 l Azure AD目录 当你注册 Microsoft 云服务时,便会获得一个 Azure AD 目录.你可根据需要创建更多的目录.例如,可以将第一个目录保 ...
- 无责任Windows Azure SDK .NET开发入门篇(一):开发前准备工作
Windows Azure开发前准备工作 什么是 Azure SDK for .NET?微软官方告诉我们:Azure SDK for .NET 是一套应用程序,其中包括 Visual Studio 工 ...
随机推荐
- HDU2028 Lowest Common Multiple Plus
解题思路:最近很忙,有点乱,感觉对不起自己的中国好队友. 好好调整,一切都不是问题,Just do it ! 代码: #include<cstdio> int gcd(int a, i ...
- HDU 5001 Walk
解题思路:这是一道简单的概率dp,只要处理好相关的细节就可以了. dp[d][i]表示走d步时走到i的改概率,具体参考代码: #include<cstdio> #include<cs ...
- XE7 - Image的双击事件无响应,咋整?(已解决)
今天折腾了好一会,本想做个类似于手机相册的功能,显示SQLite数据库中的图片,然后继续做一些处理.哪成想,写个测试例子时就被卡住了:简单的往窗体上拖放了一个TImage和一个TLabel,没有修改任 ...
- Heritrix源码分析(十) Heritrix中的Http Status Code(Http状态码)(转)
本博客属原创文章,欢迎转载!转载请务必注明出处:http://guoyunsky.iteye.com/blog/649737 本博客已迁移到本人独立博客: http://www.yun5u ...
- 可接受多个值的文件上传字段HTML5新特性
<input type="file" id="input" multiple="multiple"> 主要是多了个multip ...
- 康乐不风流之爱解题的pde灌水王张祖锦
康乐不风流之爱解题的pde灌水王张祖锦 师弟: 邓洪存 (现在烟台大学任教) 好吧, 我一直想写写康乐园里与我相熟的这几个人, 不如趁此机会开始. 第一批人物为张祖锦.苏延辉.张会春.黄显涛.刘兴兴. ...
- Java核心 --- 注解
Java核心——注解 注解是jdk5以后的新特性,Spring和Hibernate等框架提供了注解的配置方式使用, 本文参考了浪曦风中叶的注解讲解,主要讲解jdk内置注解的用法,注解的声明和定义,以及 ...
- Chapter10:泛型算法
泛型算法的基础是迭代器. 迭代器令算法不依赖于容器,但是算法依赖于元素类型的操作.也即:算法永远不会执行容器的操作. 那么,如果想向容器中添加元素或者执行其他的一些操作呢?标准库提供了插入迭代器来完成 ...
- jQuery hover demo
先放效果图: 百度云下载地址:http://pan.baidu.com/s/1dDpn1Sl 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTM ...
- URAL-1997 Those are not the droids you're looking for 二分匹配
题目链接:http://acm.timus.ru/problem.aspx?space=1&num=1997 题意:记录了n个人进出门的时间点,每个人在房子里面待的时间要么小于等于a,要么大于 ...