小编Arn*_* F.的帖子

ASP.NET核心 - 向用户添加角色声明

我使用Windows身份验证的ASP.NET Core(基于.NET Framework).重点是,我需要在该用户上添加角色声明,并且此角色存储在远程数据库中.

我已经阅读了很多关于OWIN/Cookie/UserManager/UserStore/Identity等的内容,以至于我迷失了.

问题:如何以最简单的方式为整个应用程序的当前用户登录(窗口)添加角色声明?

我需要的是轻松使用[Authorize(Role= "MyAddedRole")]bool res = User.IsInRole("MyAddedRole")

谢谢

c# claims-based-identity asp.net-identity asp.net-core

9
推荐指数
3
解决办法
9094
查看次数

如何在.NET Framework和.NET Compact Framework上编译库?

我正在开发一个技术库类,可以在两种类型的框架上使用(紧凑型或非紧凑型).

开发此类库的最佳方法是什么?默认情况下使用.NET功能(对于XP Embedded)并在使用Windows CE(使用CF.NET)时进行限制?

谢谢.

c# compact-framework conditional-compilation

7
推荐指数
1
解决办法
1227
查看次数

C# - 在项目之间共享资源文件

我想两个如何在两个(或更多)项目之间共享资源文件?

所以,要恢复,我有三个项目:

包含资源文件的开发项目(CF.NET)(包含所有定义).

我还有两个空的项目但是链接到开发项目,每次只是一个不同的构建,所以当我修改开发项目时,所有三个项目也都会更新.(修改csproj文件.)

问题是,资源文件怎么样?当我尝试从开发项目访问时,我获得了所有资源,但是当我从另外2个人那里尝试时,它会抛出"MissingManifestResourceException".

不知道如何解决这个问题?

谢谢.


[编辑]

这就是我所做的:

创建一个名为"RealProject"的项目,其中包含所有代码(包括资源文件)创建一个名为"LinkedProject"的项目,其中不包含任何内容(我删除了所有文件并修改csproj文件,如下所示:

  <ItemGroup>
    <Compile Include="..\RealProject\**\*.cs" />
  </ItemGroup>
Run Code Online (Sandbox Code Playgroud)

所以在LinkedProject目录中我只有:

  • [目录] bin
  • [目录] obj
  • [File] LinkedProject.csproj

整个LinkedProject使用RealProject文件,它只是一个不同的配置构建(请参阅此处了解原因:C# - .NET和CF.NET的代码编译器)

进入该配置后,我无法访问RealProject中的资源文件...

如果您需要屏幕或更详细的解释,请询问.


[编辑]

有了这个代码,它的工作原理,资源管理器没有加载好的程序集名称,但它应该存在更好的解决方案!

Assembly ass = Assembly.ReflectionOnlyLoadFrom(@"..\..\..\RealProject\bin\Debug\RealProject.dll");
ResourceManager manager = new ResourceManager("RealProject.Properties.Resources", ass);
Run Code Online (Sandbox Code Playgroud)

[解]

要检查的事项:

  • LinkedProject与RealProject具有相同的命名空间
  • 添加资源作为链接
  • 清理所有解决方案
  • 重建它

测试!

c# resources

7
推荐指数
1
解决办法
9279
查看次数

C#和远程数据库连接(使用Compact)

我正在Windows CE平台上开发应用程序,此应用程序需要连接到远程数据库(Sybase ASE).此远程数据库位于内部网络上.

我怎样才能做到这一点?

似乎ODBC没有嵌入Compact Framework中......

我找到的唯一解决方案是开发一个UNIX应用程序,它执行我的SQL代码并将其发送回我的C#应用​​程序(使用Socket ...).

好主意?

谢谢 !

c# compact-framework remote-access

6
推荐指数
1
解决办法
1157
查看次数

从byte []到XmlTextReader

我的问题非常简单,我有一个字节数组(通过套接字完成),我想将它转换为XmlTextReader对象.我怎样才能做到这一点?

这不起作用:

byte[] buffer = new byte[5000]; // TODO a revoir
int sizeReceived;

sizeReceived = _socket.Receive(buffer);
string s = Encoding.UTF8.GetString(buffer, 0, sizeReceived); // s is correctly fulfilled with XML a get back
MemoryStream memory = new MemoryStream(buffer);
memory.Position = 0;

return new XmlTextReader(memory);
Run Code Online (Sandbox Code Playgroud)

感谢帮助.

c#

6
推荐指数
1
解决办法
6087
查看次数

XmlSerializer在.NET 3.5和CF.NET 3.5之间有所不同

我有一个在CF.NET和.NET下运行的库,但两者之间的序列化不同.因此,在.NET下生成的XML文件在.NET下是不可读的,这对我来说是个大问题!

这里是代码示例:

[Serializable, XmlRoot("config")]
public sealed class RemoteHost : IEquatable<RemoteHost>
{
    // ...
}

public class Program
{
    public static void Main()
    {
        RemoteHost host = new RemoteHost("A");
        List<RemoteHost> hosts = new List<RemoteHost>();
        hosts.Add(host);
        XmlSerializer ser = new XmlSerializer(typeof(List<RemoteHost>));
        ser.Serialize(Console.Out, hosts);
    }
}
Run Code Online (Sandbox Code Playgroud)

CF.NET xml:

<?xml version="1.0"?>
<ArrayOfConfig xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <config Name="A">
  </config>
</ArrayOfConfig>
Run Code Online (Sandbox Code Playgroud)

.NET xml

<?xml version="1.0" encoding="ibm850"?>
<ArrayOfRemoteHost xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <RemoteHost Name="A">
  </RemoteHost>
</ArrayOfRemoteHost>
Run Code Online (Sandbox Code Playgroud)

如何修改程序以生成相同的XML?

.net c# xml serialization compact-framework

6
推荐指数
1
解决办法
818
查看次数

Xamarin - 找不到匹配的资源

我最近在我的计算机上安装Win10后重新安装了Xamarin.

一如既往,安装Xamarin并启动基本的Xamarin.Forms应用程序将无法正常工作,您需要遇到一些麻烦,这是我的:

找不到与给定名称匹配的资源:attr'windowNoTitle'.
找不到与给定名称匹配的资源:attr'colorPrimary'.
找不到与给定名称匹配的资源:attr'windowActionBar'.
检索项目的父项时出错:找不到与给定名称"Theme.AppCompat.Light.DarkActionBar"匹配的资源.找不到与给定名称匹配的资源:attr'colorPrimaryDark'.
找不到与给定名称匹配的资源:attr'colorAccent'.
找不到与给定名称匹配的资源:attr'colorAccent'.
找不到与给定名称匹配的资源:attr'windowActionModeOverlay'.检索项目的父项时出错:找不到与给定名称"Theme.AppCompat.Light.Dialog"匹配的资源.

我已经阅读了几个主题,说你需要将min SDK版本更改为:

<uses-sdk android:targetSdkVersion="23" android:minSdkVersion="23" /> 并在Android SDK Manager中更新所有数据包(也是如此).

但我仍然得到错误.

任何暗示要改变什么以使我的基本应用程序工作?

EDIT styles.xml存在,看起来像:

    <?xml version="1.0" encoding="utf-8" ?>
<resources>

  <style name="MainTheme" parent="MainTheme.Base">
  </style>
  <!-- Base theme applied no matter what API -->
  <style name="MainTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar">
    <!--If you are using revision 22.1 please use just windowNoTitle. Without android:-->
    <item name="windowNoTitle">true</item>
    <!--We will be using the toolbar so no need to show ActionBar-->
    <item name="windowActionBar">false</item>
   [...]
Run Code Online (Sandbox Code Playgroud)

c# xamarin xamarin.forms

6
推荐指数
1
解决办法
1万
查看次数

如何在$ .ajax({success:...})之前启动$(elem).ajaxSuccess();?

我要做的是在进入$.ajax({success});方法之前自动启动一个函数.我是这样的:

$("body").ajaxSuccess(
    function(event, XMLHttpRequest, ajaxOptions) {
        alert("ajaxSuccess");
    }
);
Run Code Online (Sandbox Code Playgroud)

并且:

$.ajax({
    url: ".",
    success: function() {
        alert("success");
    }
);
Run Code Online (Sandbox Code Playgroud)

我的问题是,我首先看到"成功",然后是"ajaxSuccess",或者反过来.可能吗?还有其他方法吗?

$ .ajaxError()的问题是一样的......

谢谢

jquery

5
推荐指数
1
解决办法
650
查看次数

C# - .NET和CF.NET的代码编译器

我有一个需要使用.NET和Compact .NET Framework编译的项目.

  1. 有可能创建一个C#编译器,用两个框架编译我的项目吗?
  2. CF.NET Framework中没有一些功能,所以我自己创建了它(创建了与.NET Framework中具有完全相同名称和选项的类.如果我使用类似[CF35]的属性来解析这些类,则可以解析项目和:

    • 使用CF.NET编译项目时使用此类
    • 使用.NET编译项目时忽略此类

感谢所有建设性的答案.

[编辑]

我知道解决方案包括创建两个引用相同文件的项目.问题是,你应该每次都手动编译.此外,当你向一个文件中添加一个文件时,你需要打开第二个文件并引用它,它只是无聊而且根据我们很多人来处理同一个项目,我想自动完成这个部分.

似乎可能吗?


[编辑2] 除了......资源文件外,一切正常!

所以,要恢复,我有三个项目:

  • 开发项目(CF.NET)
  • 发布项目(CF.NET 3.5),包括所有文件通过""
  • 发布项目(NET 3.5),包括所有文件""

如上所述,一切正常,但现在我的问题是使用资源文件.

申请使用它的方法是什么?

  • 当我使用开发项目时,正确检索资源文​​件
  • 当我使用其他两个项目时,ResourceManager会抛出MissingManifestResourceException

任何的想法?

.net c# compiler-construction codedom compact-framework

4
推荐指数
1
解决办法
1689
查看次数

IDisposable:内存泄漏

我目前正在审查一个C#应用程序,我在其中看到:

public static bool ServiceExists(string servicename)
{
    ServiceController[] services = ServiceController.GetServices();
    foreach (ServiceController s in services)
    {
        if (s.ServiceName == servicename)
        {
            return true;
        }
    }
    return false;
}
Run Code Online (Sandbox Code Playgroud)

在这个答案中,Henk表示不使用Dispose()(或using)不会产生内存泄漏,无论是真是假?

我可以保留以前的代码吗或者我应该写一些像:

public static bool ServiceExists(string servicename)
{
    ServiceController[] services = ServiceController.GetServices();
    bool exists = false;

    foreach (ServiceController s in services)
    {
        using(s)
        {
            if (s.ServiceName == servicename)
            {
                exists = true;
            }
        }
    }

    return exists;
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,不使用Dispose()(或using)有什么风险?

c# memory-leaks idisposable

4
推荐指数
1
解决办法
969
查看次数