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用户详细信息]的更多相关文章

  1. 无责任Windows Azure SDK .NET开发入门篇三[使用Azure AD 管理用户信息]

    三.使用Azure AD管理用户信息 在上一章我们采用OpenID的方案和Azure AD交互进行身份验证,本章节我们继续了解如何在Azure AD中创建用户,列出用户信息,修改用户信息和删除用户信息 ...

  2. 无责任Windows Azure SDK .NET开发入门篇三[使用Azure AD 管理用户信息--3.4 Edit修改用户信息]

    3.4 Edit修改用户信息 我们用FormCollection简化了表单提交,非常方便的进行用户信息修改. [HttpPost, Authorize] public async Task<Ac ...

  3. 无责任Windows Azure SDK .NET开发入门篇三[使用Azure AD 管理用户信息--3.2 Create创建用户]

    3.2 Create创建用户 [HttpPost, Authorize] public async Task<ActionResult> Create( [Bind(Include = & ...

  4. 无责任Windows Azure SDK .NET开发入门篇三[使用Azure AD 管理用户信息--3.1 Index用户列表]

    3.1 Index用户列表 或许当前域下的用户列表 [Authorize] public async Task<ActionResult> Index() { var userList = ...

  5. 无责任Windows Azure SDK .NET开发入门篇三[使用Azure AD 管理用户信息--3.5 Delete删除用户]

    3.5 Delete删除用户 删除也是通过ObjectID获得对象进行删除 [Authorize] public async Task<ActionResult> Delete(strin ...

  6. 无责任Windows Azure SDK .NET开发入门篇二[使用Azure AD 进行身份验证-2.2身份验证开发]

    2.2身份验证开发 在我们的案例中,我们是用户通过Web应用程序进行身份识别. 上面的图示说明了如下的一些概念 l Azure AD 是标识提供程序,负责对组织的目录中存在的用户和应用程序的标识进行验 ...

  7. 无责任Windows Azure SDK .NET开发入门篇二[使用Azure AD 进行身份验证]

    二.使用Azure AD进行身份验证 之所以将Azure AD 作为开始,是应为基本上我们所有应用都需要进行安全管理.Azure Active Directory (Azure AD) 通过以下方式简 ...

  8. 无责任Windows Azure SDK .NET开发入门篇二[使用Azure AD 进行身份验证--2.1使用Azure AD需要了解几个概念]

    2.1使用Azure AD需要了解几个概念 l Azure AD目录 当你注册 Microsoft 云服务时,便会获得一个 Azure AD 目录.你可根据需要创建更多的目录.例如,可以将第一个目录保 ...

  9. 无责任Windows Azure SDK .NET开发入门篇(一):开发前准备工作

    Windows Azure开发前准备工作 什么是 Azure SDK for .NET?微软官方告诉我们:Azure SDK for .NET 是一套应用程序,其中包括 Visual Studio 工 ...

随机推荐

  1. HDU2028 Lowest Common Multiple Plus

    解题思路:最近很忙,有点乱,感觉对不起自己的中国好队友.   好好调整,一切都不是问题,Just do it ! 代码: #include<cstdio> int gcd(int a, i ...

  2. 批量生成sqlldr文件,高速卸载数据

    SQL*Loader 是用于将外部数据进行批量高速加载的数据库的最高效工具,可用于将多种平面格式文件加载到Oracle数据库.SQL*Loader支持传统路径模式以及直接路径这两种加载模式.关于SQL ...

  3. 如何在VMware虚拟机间建立共享磁盘?

    在同一台电脑上,有时难免要安装多个虚拟机,存储空间就成了最大的问题,那么如何解决虚拟机的硬盘问题呢,Vmware自带的工具可以很好的解决此问题,下面我们就来看看如何在Vmware虚拟机间建立共享磁盘? ...

  4. windows下mysql 数据库的导入导出

    1.以.sql方式方式导入导出 http://www.360doc.com/content/11/0114/11/2905268_86441355.shtml 2.以.txt方式导入导出 http:/ ...

  5. 数组排序,字符串math,replace练习

    1. 关于数组排序     排序一直是程序设计中的热门话题.在js中,数组有个sort()方法.在不传参数默认情况下,数组的sort()方法原理是:对数每项调用toString()方法,比较字符串按升 ...

  6. eclipse 工程加入ant以支持自动打war包

    先在工程的根目录下建一个一builder.xml内容如下 <project basedir="." default="war" name="hb ...

  7. 序列化、反序列化和transient关键字的作用

    引言 将 Java 对象序列化为二进制文件的 Java 序列化技术是 Java 系列技术中一个较为重要的技术点,在大部分情况下,开发人员只需要了解被序列化的类需要实现 Serializable 接口, ...

  8. yii中设置提示成功信息,错误提示信息,警告信息

    方法一: <?phpYii::app()->user->setFlash(‘success’,”Data saved!”); 设置键值名为success的临时信息.在getFlash ...

  9. EditText 光标不显示问题

    android:textCursorDrawable="@drawable/bg_txt_cursor" <?xml version="1.0" enco ...

  10. static public和 public static 区别

    static:加static 的是静态成员,不能实例化在你运行的时候他自己在内存中开辟了块空间,不用在new, 有点像全局变量,如果不用你必须去 实例化(new)才能用 static是静态的意思,pu ...