小编ono*_*012的帖子

C#Object Constructor - 简写属性语法

几个月前,我读到了一种技术,如果传入的参数与局部变量匹配,那么你可以使用一些简短的语法来设置它们.为了避免这种情况

public string Method(p1, p2, p3)
{
    this.p1 = p1;
    this.p2 = p2;
    this.p3 = p3;
}
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

c# class object

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

C#生成两个小数之间的随机小数

编辑我会重新解释,每当我说十进制时,我的意思system.decimal不是数学概念

decimal min = 5.62;
decimal max = 14.39;
Run Code Online (Sandbox Code Playgroud)

如何在上述两位小数system.decimal范围内随机得到一个?

Double!= system.decimal

仅供参考我不知道如何让我的问题更加清晰,因为超过一半阅读此内容的人只阅读了2个单词,然后将其标记为重复.

c# random decimal

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

Android应用程序和Web服务+ facebook登录之间的身份验证

我的Android应用程序中唯一的登录选项是通过Facebook登录.我想使用Web服务(ASMX),并且在每个请求上,服务器必须验证用户是否通过facebook进行了身份验证.我找到了解决方案:

1)从Android应用程序验证用户到Facebook

2)获取FB身份验证令牌到Android应用程序

3)将认证令牌和Facebook UID从Android转发到Web服务器

4)在Web服务器上,使用提交的令牌进行Facebook API调用.

如果来自Web服务器的Facebook API调用返回有效身份验证,并且用户ID等于Android应用程序提交的身份,则您的服务器可以信任该ID(并且您可以确定Android身份验证是真实的)

链接

我的问题是:

  1. 每次向Web服务发送请求时,是否必须发送facebook用户ID和令牌?或使用cookie(如果可能的话)
  2. 我是否必须将网络服务注册为Facebook应用程序?我发现了这个: C#Facebook SDK入门

android facebook web-services

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

从IdentityUser继承我在UserManager <User>上收到错误

我正在使用.NET Framework 4.5.1和Asp.Net Identity 2.1.0开发Web Api 2.2应用程序.

我不确定我在做什么,但我想将我的数据库与ASP.NET Identity数据库合并,我已经这样做了:

我自己的dbContext.

public class EFDbContext : IdentityDbContext, IUnitOfWork
Run Code Online (Sandbox Code Playgroud)

我自己的User课.

public class User : 
   IdentityUser<long,
                IdentityUserLogin<long>,
                IdentityUserRole<long>,
                IdentityUserClaim<long>
               >
Run Code Online (Sandbox Code Playgroud)

但是当我这样做时:

UserManager<User> _userManager;

我收到此错误:

该类型Data.Models.User不能用作类型的参数TUser.没有任何显式转换Data.Models.UserMicrosoft.AspNet.Identity.IUser<string>.

因为我想有我这样做是IdentityUser.Idlong代替string.

我该如何解决这个错误?

UPDATE

用以下内容更新UserManager后:

UserManager<User, long> _userManager;
Run Code Online (Sandbox Code Playgroud)

我在这里得到三个错误:

EFDbContext_ctx = context as EFDbContext;
_userManager = new UserManager<User, long>(new UserStore<User>(_ctx));
Run Code Online (Sandbox Code Playgroud)
  1. "Microsoft.AspNet.Identity.UserManager.UserManager(Microsoft.AspNet.Identity.IUserStore)"方法重载的最佳匹配有一些无效的参数 -
  2. "Data.Models.User"类型不能用作"TUser"类型的参数或通用方法"Microsoft.AspNet.Identity.EntityFramework.UserStore".没有从'Data.Models.User'到'Microsoft.AspNet.Identity.EntityFramework.IdentityUser'的隐式引用的转换.
  3. 参数1:无法从"Microsoft.AspNet.Identity.EntityFramework.UserStore"转换为"Microsoft.AspNet.Identity.IUserStore"

我该如何解决这个新错误?

c# asp.net entity-framework asp.net-identity

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

具有不可变类的实体框架6

我有一Point节课:

// My immutable Point class
public class Point
{
    private readonly Distance _x;
    private readonly Distance _y;
    private readonly Distance _z;

    public Distance X
    {
        get { return _x; }
    }

    public Distance Y
    {
        get { return _x; }
    }

    public Distance Z
    {
        get { return _x; }
    }

    // Ok, so this isn't immutable... but it's purely for EF
    public int DatabaseId { get; set; }

    public Point(Distance x, Distance y, Distance z)
    { …
Run Code Online (Sandbox Code Playgroud)

c# entity-framework immutability entity-framework-6

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

将google idToken替换为本地openId令牌c#

我正在使用这个github项目https://github.com/openiddict/openiddict-core 这很棒.但是,当用户使用外部身份提供商时,我会被困在程序应该是什么,或者如何实现它们,对于这个例子,我将使用谷歌.

我有一个angular2 app运行,带有aspnet核心webAPI.我所有的本地登录工作connect/token都很完美,我使用用户名和密码调用,并返回accessToken.

现在我需要将谷歌作为外部身份提供商实施.我已按照此处的所有步骤实施Google登录按钮.这会在用户登录时打开一个弹出窗口.这是我为google按钮创建的代码.

// Angular hook that allows for interaction with elements inserted by the
// rendering of a view.
ngAfterViewInit() {
    // check if the google client id is in the pages meta tags
    if (document.querySelector("meta[name='google-signin-client_id']")) {
        // Converts the Google login button stub to an actual button.
        gapi.signin2.render(
            'google-login-button',
            {
                "onSuccess": this.onGoogleLoginSuccess,
                "scope": "profile",
                "theme": "dark"
            });
    }
}

onGoogleLoginSuccess(loggedInUser) {
    let idToken = loggedInUser.getAuthResponse().id_token;

    // here i can pass the …
Run Code Online (Sandbox Code Playgroud)

c# openid oauth asp.net-core openiddict

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

如何在asp.net中创建303响应

有没有人知道如何使用http状态代码303(参见其他)在ASP.NET中重定向当前请求.

代码片段非常受欢迎!

c# asp.net http-status-code-303

4
推荐指数
2
解决办法
2823
查看次数

如何在Activemq jms队列中设置消息ID?

我已经下载了activemq版本5.8.0并编写了用于创建队列的示例程序.我成功地向队列发送了一条示例消息.

之后,我尝试将消息ID设置为特定消息.消息ID可用于检索特定消息.我试图使用设置消息ID message.setJMSMessageID("1234");.

 public static void messagestoQueueu(){

     // JMS messages are sent and received using a Session. We will
        // create here a non-transactional session object. If you want
        // to use transactions you should set the first parameter to 'true'
        Session session;
        try {
             // Getting JMS connection from the server and starting it
            ConnectionFactory connectionFactory =
                new ActiveMQConnectionFactory(url);
            Connection connection = connectionFactory.createConnection();
            connection.start();
            session = connection.createSession(false,
                Session.AUTO_ACKNOWLEDGE);

        // Destination represents here our queue 'TESTQUEUE' on the
        // …
Run Code Online (Sandbox Code Playgroud)

java activemq-classic jms

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

实体框架 Linq 将 lambda 表达式嵌入到可重用函数中

当使用 Linq 和 Entity Framework 来查询数据库时,有没有办法减少重复的 lambda?例如:

db.Users.FirstOrDefault(x => x.Username == "MM001" && x.Type == 1 && x.IsActive == True && x.ExpiryDate > DateTime.Now);
Run Code Online (Sandbox Code Playgroud)

我想把它变成:

db.Users.FirstOrDefault(x => x.Username == "MM001" && x.IsActiveStaff());
Run Code Online (Sandbox Code Playgroud)

我尝试在我的 Users POCO 中编写如下方法:

public bool IsActiveStaff()
{
    return Type == 1 && IsActive == True && ExpiryDate > DateTime.Now;
}
Run Code Online (Sandbox Code Playgroud)

但是,我收到以下错误:LINQ to Entities 无法识别方法“Boolean IsActiveStaff()”方法,并且此方法无法转换为存储表达式。

我意识到这是因为 LINQ To Entities 无法将此方法转换为 SQL 表达式,但是有什么方法可以让它工作吗?

我知道我可以编写一个查询命令类,它只需将用户名作为参数,并将所有逻辑放在其中,但我想知道是否可以将一系列 lambda 嵌入到方法或扩展方法等中,并在需要时使用它们,就像我上面的示例一样。

linq lambda linq-to-entities entity-framework linq-to-sql

3
推荐指数
1
解决办法
1832
查看次数

Url.Link 始终返回在 asp..net web api 中使用的 null

我想为从 REST Api 返回的 DTO 创建一些超链接。

变量url始终为空,我不知道为什么?!

为什么没有创建网址,我还缺少什么?

路由的名称是GetStatusFeedback正确的,我也使用 Action 和 Controller 作为路由参数 + leadIdparam!

public class ValuesController : ApiController
{
    [Route("")]
    [HttpGet]
    public IHttpActionResult Get()
    {
        var leadsFromDataBase = new List<Lead> { new Lead { Id = 1 }, new Lead { Id = 2 } };
        var leadDtos = new List<LeadDto>();
        foreach (var lead in leadsFromDataBase)
        {
            var leadDto = new LeadDto();
            string url = Url.Link("GetStatusFeedback", new { LeadId = lead.Id, Action = …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-web-api asp.net-web-api-routing

2
推荐指数
1
解决办法
1840
查看次数

禁用control + c关闭程序

我有一个循环ping请求的方法,我想当我点击Ctrl+时c,它会打破循环并给我像普通cmd一样的静态,但当我点击Ctrl+时c,我得到

按任意键继续... <<

然后程序关闭.

例如:ping google.com -t <<将以无限循环ping谷歌,但我需要在点击Ctrl+ 时才打破循环c

private void _t(string website)
{
    Ping pingSender = new Ping();
    string data = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
    byte[] buffer = Encoding.ASCII.GetBytes(data);
    int timeout = 10000;
    try
    {
        PingOptions options = new PingOptions(64, false);
        PingReply send0 = pingSender.Send(website, timeout, buffer, options);
        Console.WriteLine("\nPinging {0} [{1}] With {2} bytes of data :", website, send0.Address.ToString(), send0.Buffer.Length);
        while (1 < 2)
        {
            PingReply reply = pingSender.Send(website, timeout, buffer, …
Run Code Online (Sandbox Code Playgroud)

c# methods key break

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

使用相同对象的列表c#在另一个类中分配对象的私有字段

我有两个类,一个ExampleClass和一个ExampleClassManager,其中包含一个列表ExampleClass.

ExampleClass有一个私有_id字段,我想在ExampleClassManager课堂上设置.这可能吗?

public class ExampleClass
{
    //Fields
    private string _id; //Should be set in ExampleClassManager
}


public class ExampleClassManager
{
    //Fields
    List<ExampleClass> exampleClassList = new List<ExampleClass>();  
}
Run Code Online (Sandbox Code Playgroud)

c#

0
推荐指数
1
解决办法
74
查看次数