我有一个应用程序,可以为用户分配以下角色:
一个用户可能已经分配了两个或更多个角色,例如.SuperAdmin和用户.我的应用程序使用声明,因此我也希望通过声明来验证用户角色.喜欢:
[Authorize(Roles="Admin")]
Run Code Online (Sandbox Code Playgroud)
不幸的是,我不知道如何将多个角色添加到我的ClaimTypes.Role.我有以下代码:
var identity = new ClaimsIdentity(new[] {
new Claim(ClaimTypes.Name, name),
new Claim(ClaimTypes.Email, email),
new Claim(ClaimTypes.Role, "User", "Admin", "SuperAdmin")
},
"ApplicationCookie");
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,我试图为了说明而添加更多角色,但显然它以错误的方式完成,因此无效.因此,非常感谢任何帮助.
我正在尝试测试一些使用 MSAL 进行身份验证的组件。
到目前为止,我有一个简单的测试,测试我的组件是否可以渲染,如下所示:
let container;
beforeEach(() => {
container = render(<NavBar/>)
});
test('Component renders', () => {
expect(container).not.toBeNull()
})
Run Code Online (Sandbox Code Playgroud)
当我运行测试时,我收到以下错误:
BrowserAuthError: crypto_nonexistent: The crypto object or function is not available. Detail:Browser crypto or msCrypto object not available.
at BrowserAuthError.AuthError [as constructor] (node_modules/@azure/msal-browser/dist/index.cjs.js:545:24)
at new BrowserAuthError (node_modules/@azure/msal-browser/dist/index.cjs.js:7096:28)
at Function.Object.<anonymous>.BrowserAuthError.createCryptoNotAvailableError (node_modules/@azure/msal-browser/dist/index.cjs.js:7113:16)
at new BrowserCrypto (node_modules/@azure/msal-browser/dist/index.cjs.js:7413:36)
at new CryptoOps (node_modules/@azure/msal-browser/dist/index.cjs.js:7782:30)
at PublicClientApplication.ClientApplication (node_modules/@azure/msal-browser/dist/index.cjs.js:10027:58)
at new PublicClientApplication (node_modules/@azure/msal-browser/dist/index.cjs.js:11307:23)
Run Code Online (Sandbox Code Playgroud)
我不确定上面的意思,但据我所知,发生此错误是因为会话未经身份验证。
因此,我的问题可以分为以下几个方面:
因此,我构建了一个 Xamarin Forms 应用程序,现在我想在物理 iOS 设备上进行测试。调试器成功运行了我的程序,但不幸的是,当我在物理 iPhone 上部署程序时遇到了问题。
为了部署我的应用程序,我执行了以下操作:
包标识符自然匹配,我已执行以下操作来解决该问题:
仍然没有成功。我很好奇为什么 Xamarin 要求提供代码签名密钥,而我仍在调试..
任何帮助深表感谢
考虑以下情况,我有一个看起来像这样的文档:
"id": 2
"properties": {
"desired": {
"Property1": 10,
"Property2": 1,
"Property3": 1,
"$metadata": {
...
},
"$version": 53
}
},
Run Code Online (Sandbox Code Playgroud)
我想从文档中获取所有内容,$metadata
除了并且$version
明显的解决方案是:
SELECT c["Property1"], c["Property2"] .... FROM c where c["id"] = "2"
Run Code Online (Sandbox Code Playgroud)
但是,我的文档可能会动态扩展,因此上述内容不是最佳的。因此,我认为最好排除$metadata
和$version
。我在 stackoverflow 上查看了不同的“有趣”解决方案,其中一个建议创建一个临时表。
不幸的是,查询需要非常高效,因为我想减少使用的 RU 量。另外,我真的想避免在代码中处理排除。
因此,如何从文档中排除特定的“列”,而不编写过长的查询(可能包括创建临时表)。
我使用 DB First 方法在 .NET Core 实体框架中构建了一个数据库模型。我的数据库中有几个多对多关系,它们都用一个连接表表示。
就像这样:
public partial class Test1
{
public Test1()
{
Test1_Test2= new HashSet<Test1_Test2>();
}
public int Id { get; set; }
..
public virtual ICollection<Test1_Test2> Test1_Test2{ get; set; }
}
Run Code Online (Sandbox Code Playgroud)
public partial class Test2
{
public Test2()
{
Test1_Test2= new HashSet<Test1_Test2>();
}
public int Id { get; set; }
..
public virtual ICollection<Test1_Test2> Test1_Test2{ get; set; }
}
Run Code Online (Sandbox Code Playgroud)
public partial class Test1_Test2
{
public int Test1Id{ get; set; }
public int Test2Id{ get; set; …
Run Code Online (Sandbox Code Playgroud) 我创建了一个从SQLite DB填充的列表视图.XML看起来像这样:
<ListView x:Name="CalculationListview" ItemsSource="{Binding Calculation}" HasUnevenRows="true">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<StackLayout>
<Label Text="{Binding Qty}"></Label>
<Label Text="{Binding Note}"></Label>
<Button Text="Delete" Clicked="Handle_Clicked"></Button>
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
Run Code Online (Sandbox Code Playgroud)
我已经创建了一个按钮,如果单击该按钮,我想从中删除该项目.
我已经从数据库中删除了一个接收给定对象的方法.
public Task<int> DeleteCalculationAsync(Calculation calculation)
{
return database.DeleteAsync(calculation);
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,我不知道如何从bindingcontext中获取对象,以便我可以删除该项目.我显然已经点击了事件处理程序:
void Handle_Clicked(object sender, System.EventArgs e)
{
App.Database.DeleteCalculationAsync(SOMETHING HERE);
}
Run Code Online (Sandbox Code Playgroud) 我目前正在编写一个简单的 Web 应用程序,它利用 mssql 数据库来存储数据。就像现在一样,我尝试设置我的业务逻辑层,从而以最好的方式构建它。
目前,我所有的调用都是使用 Linq 进行的,实际上它们都不是异步的。我对异步编程还很陌生,并且通常很想知道我应该对哪些查询使用异步调用。
据我所知,使用异步数据库调用是有意义的,因为它可以释放主线程上的内存并且不会阻塞 UI。此外,异步调用可以并发运行,这意味着可以同时完成更多事务。
但是,考虑到我在我的上下文中异步添加多个实体,并使用该SaveChangesAsync()
方法来结束我的上下文。AddAsync()
在我的上下文中拥有多个方法不是多余的,因为SaveChangesAsync()
无论如何都会异步运行所有内容吗?
最后,根据我所阅读和所见,很多人更喜欢使用异步数据库调用。也就是说,与其说是例外,不如说是规则。
如果是这样,在什么情况下我会避免异步数据库调用,在我的业务逻辑层中添加异步调用时我应该遵守哪些一般规则?
c# asynchronous entity-framework linq-to-sql task-parallel-library
我想知道当我UIButton
点击或突出显示时,我是如何在我的边框周围改变不透明度以及文本内部的文本.
我的逻辑告诉我,它应该是这样的......但它似乎不起作用:
//BTN STYLING
btnstd.layer.cornerRadius = 5
btnstd.layer.borderWidth = 1.5
btnstd.layer.borderColor = UIColor.white.cgColor
//Change bordercolor when highlighted
if(btnstd.isHighlighted) {
btnstd.layer.borderColor = UIColor(white:1,alpha:0.3).cgColor
}
Run Code Online (Sandbox Code Playgroud)
顺便提一句,这是我的ViewDidLoad()
功能
c# ×4
xamarin ×2
asp.net-core ×1
asp.net-mvc ×1
asynchronous ×1
javascript ×1
linq-to-sql ×1
nosql ×1
reactjs ×1
sql ×1
swift ×1
xamarin.ios ×1
xaml ×1
xcode ×1