使用Azure Active Directory Graph Client,我可以使用ff成功查询AD的用户角色.码:
var activeDirectoryClient = new ActiveDirectoryClient(); // Instantiate the Graph Client here.
var adRoles = await activeDirectoryClient.DirectoryRoles.ExecuteAsync();
Run Code Online (Sandbox Code Playgroud)
但是,有可能得到:
在这种情况下,我对管理员的定义是公司管理员角色下的用户,或者能够授权应用程序的用户(通过格式为https://login.microsoftonline.com/common/oauth2/的身份验证请求URL)授权?response_type = code&client_id = xxx-xxx&resource = yyy-yyy&redirect_uri = zzz-zzz&prompt = admin_consent)
可以使用ObjectDataProviderWPF应用程序将枚举的字符串值绑定到ComboBox的ItemsSource,如此问题所示.
但是,在UWP应用程序中使用类似的代码段时,ff.显示错误消息:
"Windows Universal项目不支持ObjectDataProvider."
在UWP中有一个简单的替代方法吗?
我有一类User,可以有几个联系号码.我正在使用CsvHelper生成用户报告,该报告将创建用户姓名和联系人详细信息的CSV文件.每个联系号码都应显示在自己的列中,联系号码的类型为列标题.
下面我有我的ContactNumber和User类,以及UserMap应该格式化我的CSV文件的类:
public class ContactNumber
{
public string ContactType { get; set; }
public string Number { get; set; }
}
public class User
{
public string Name { get; set; }
public IEnumerable<ContactNumber> ContactNumbers{ get; set;}
}
public sealed class UserMap : CsvClassMap<User>
{
public UserMap()
{
Map(m => m.Name).Name("Username");
// Incorrect Code
Map(m => m.ContactNumbers).Name(c => c.ContactType);
}
}
Run Code Online (Sandbox Code Playgroud)
我应该如何映射ContactNumbers的IEnumerable属性以实现我想要的结果?
我一直在研究MVVM模式并将其应用到Windows Phone 8应用程序中,我对在应用程序中初始化和访问ViewModel的最佳实践有疑问.
当我从WP8 SDKs模板创建数据绑定应用程序时,我注意到App.xaml.cs文件中的这段代码:
public static MainViewModel ViewModel
{
get
{
// Delay creation of the view model until necessary
if (viewModel == null)
viewModel = new MainViewModel();
return viewModel;
}
}
private void Application_Activated(object sender, ActivatedEventArgs e)
{
// Ensure that application state is restored appropriately
if (!App.ViewModel.IsDataLoaded)
{
App.ViewModel.LoadData();
}
}
Run Code Online (Sandbox Code Playgroud)
据我所知,这意味着App类包含MainViewModel作为静态成员,并且在激活应用程序时,将加载ViewModel.
既然如此,我有以下问题:
如果我的应用程序有多个ViewModel,它们是否都会作为成员存储在App.xaml.cs文件中?
如果同时加载每个ViewModel的数据,我该如何管理我的应用程序的内存?是否可以卸载每个ViewModel的数据并仅加载我的View正在使用的ViewModel?
我正在使用请求和响应模型来封装需要传递给ASP.NET Web Api中的方法的数据,[FromUri]并[FromBody]在必要时使用.
但是,有些实例我想使用Uri和Body来填充我的请求模型的属性.一个例子是更新用户,其中UserId应该在Uri中传递,但要更新的数据将在正文内容中传递.我想要的实现看起来像这样:
型号:
public class UpdateUserRequestModel
{
public string UserId { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string DisplayName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
Api方法:
[HttpPut]
[Route("Update/{UserId}")]
// PUT: api/Users/Update/user@domain.net
public async Task UpdateUserAsync(UpdateUserRequestModel model)
{
// Method logic
}
Run Code Online (Sandbox Code Playgroud)
我希望UserId获得属性[FromUri],但要获得其余的属性[FromBody],同时将所有参数保存在单个对象中.这可能吗?
我使用Azure表存储作为我的语义记录应用程序块的数据接收器.当我通过自定义调用日志时EventSource,我会得到类似于ff的列:
我可以通过创建一个TableEntity与列名完全匹配的类来获取这些列(EventId由于某种原因除外):
public class ReportLogEntity : TableEntity
{
public string EventId { get; set; }
public string Payload_username { get; set; }
public string Opcode { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
但是,我想将这些列中的数据存储在我的不同命名属性中TableEntity:
public class ReportLogEntity : TableEntity
{
public string Id { get; set; } // maps to "EventId"
public string Username { get; set; } // maps to "Payload_username"
public string Operation { get; set; } // maps to …Run Code Online (Sandbox Code Playgroud) 我有一个名为一个实体Member,为此,我想设置的主键MemberId和GroupId.在这种情况下,GroupId是实体的主键Group.使用下面的代码,外键设置正确,但它不包含在主键的一部分中.如何添加外键列以生成复合主键?
public class Member
{
[Key]
public string MemberId { get; set; }
public string MemberName { get; set; }
public string GroupId { get; set; }
[ForeignKey("GroupId")]
public virtual Group Group { get; set; }
}
Run Code Online (Sandbox Code Playgroud) c# entity-framework foreign-keys primary-key composite-primary-key
我有一个使用Azure AD Graph API的ASP.NET应用程序.通常,当对Graph API执行无效操作时,会抛出异常.
以下代码显示了一个无效的Graph API调用,该调用将触发异常:
// Query the Azure AD User
var userToUpdate = await activeDirectoryClient.Users.GetByObjectId("user@domain.net").ExecuteAsync();
// Set given name to an empty string (not allowed)
userToUpdate.GivenName = "";
try
{
// Update the user in Azure AD
await userToUpdate.UpdateAsync();
}
catch (Exception e)
{
// Return exception message
}
Run Code Online (Sandbox Code Playgroud)
内部异常的消息是在每个引号之前带有正斜杠的JSON字符串.它看起来像这样:
"{\"odata.error\":{\"code\":\"Request_BadRequest\",\"message\":{\"lang\":\"en\",\"value\":\"Invalid value specified for property 'givenName' of resource 'User'.\"},\"values\":[{\"item\":\"PropertyName\",\"value\":\"givenName\"},{\"item\":\"PropertyErrorCode\",\"value\":\"InvalidValue\"}]}}"
Run Code Online (Sandbox Code Playgroud)
我想将此JSON转换为.NET对象以返回信息性错误详细信息.我正在使用JSON.NET库,我假设JSON将反序列化为一个ODataError对象:
var error = Newtonsoft.Json.JsonConvert.DeserializeObject<ODataError>(e.InnerException.Message);
Run Code Online (Sandbox Code Playgroud)
但是,反序列化对象的值始终为null,这意味着转换未按预期工作.
话虽这么说,上面的JSON字符串应该映射到哪个类?另外,我应该从字符串中删除正斜杠以进行正确的反序列化吗?
我目前正在Windows Server上试验Docker容器.我创建了许多容器,我想看看它们实际保存在主机文件系统中的位置(如Hyper-V的.vhd文件).是否有我可以查看的默认位置,或者使用Docker CLI找到它的方法?
我正在用C++创建一个简单的控制台应用程序,它从用户那里获取字符串和字符串输入.为了简单起见,我想使用string和char数据类型将输入从cin传递给.
要获取字符串输入,我使用的是getline方法:
string var;
cin.ignore(); //I used ignore() because it prevents skipping a line after using cin >> var
getline(cin, var);
Run Code Online (Sandbox Code Playgroud)
要获取char输入,我使用cin >> var方法:
char var;
cin >> var;
Run Code Online (Sandbox Code Playgroud)
这在大多数情况下都可以正常工作.但是,当我使用getline输入字符串时,它会忽略我的字符串的第一个字符.
是否可以使用getline和cin >>而不必使用ignore,或者我可以调用的方法以确保不跳过我的第一个字符?
这是我使用getline和cin >>的完整代码示例:
string firstName;
string lastName;
char gender = 'A';
cout << "First Name: ";
cin.ignore();
getline(cin, firstName);
cout << "Last Name: ";
cin.ignore();
getline(cin, lastName);
while(genderChar != …Run Code Online (Sandbox Code Playgroud)