小编Zho*_*len的帖子

自定义Api授权忽略AllowAnonymous

我有一个CustomApiAuthorizeAttribute:

public class CustomApiAuthorizeAttribute : AuthorizeAttribute
{
    public override void OnAuthorization(HttpActionContext actionContext)
    {
        if (actionContext == null)
            throw new ArgumentNullException("actionContext");

        bool skipAuthorization = actionContext.ActionDescriptor.GetCustomAttributes<AllowAnonymousAttribute>().Any() || 
            actionContext.ActionDescriptor.ControllerDescriptor.GetCustomAttributes<AllowAnonymousAttribute>().Any();

        if (skipAuthorization) return;

        var cookie = HttpContext.Current.Request.Cookies[FormsAuthentication.FormsCookieName];

        if (cookie != null)
        {
            var decCookie = FormsAuthentication.Decrypt(cookie.Value);

            if (decCookie != null)
            {
                if (!string.IsNullOrEmpty(decCookie.UserData))
                {
                    HttpContext.Current.User = new CustomPrinciple(new CustomIdentity(decCookie));
                    return;
                }
            }
        }

        HttpContext.Current.Items["RequestWasNotAuthorized"] = true;

        HttpContext.Current.Response.Cookies.Add(new HttpCookie(FormsAuthentication.FormsCookieName) { Expires = DateTime.Now.AddDays(-1d) });

        HandleUnauthorizedRequest(actionContext);
    }
}
Run Code Online (Sandbox Code Playgroud)

我有一个控制器:

[CustomApiAuthorize]
public class RacingController : CustomApiController
{ …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc custom-attributes

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

敲门'绑定'?

原始问题

是否有任何人拥有或知道敲除的绑定会允许类似于for循环的行为?我可以让foreach做我想做的事,但如果我没有这样做就会很好.

编辑2

我试图根据用户的选择创建表行.在某些情况下,我需要x行,其中x是数组的长度,其他时间x表示显示n个数组所需的最大行数.

例如:image1是基于4个不同的阵列构建的,所有阵列的大小各不相同image2是从同一个阵列构建的,在这种情况下加倍.

在此输入图像描述 在此输入图像描述

<div data-bind="if: selectedTab()">
<table>
<thead>
  <tr>
    <td>
      <div class="a-i-post-All"></div>
    </td>
    <!-- ko foreach:$root.selectedTab().races-->
    <td>
      <input type="checkbox" />
    </td>
    <!-- /ko -->
  </tr>
</thead>
<tbody data-bind="foreach: selectedTab().runners"> // <-- This is an empty array created by the max number of Runners in the selectedTabs array of Races
  <tr>
    <td>
      <div class="a-i-post"></div>
    </td>
    <!-- ko foreach:$root.selectedTab().races-->
    <td>
      <!-- ko if: Runners.length > $parentContext.$index()-->
      <input type="checkbox" />
      <!-- /ko -->
    </td>
    <!-- /ko -->
  </tr>
</tbody>
Run Code Online (Sandbox Code Playgroud)

以上工作正常并创建我想要的,但我不喜欢必须将selectedTab.runners从一个数字转换为一个空数组,只是为了让它循环n次来创建行.我愿意接受建议.注意 …

javascript knockout-2.0 knockout.js

10
推荐指数
2
解决办法
9410
查看次数

对复杂的Knockout viewModel/models的建议?

我有一个非常动态的网站,它使用页面中的自定义应用程序/小部件,我正在研究如何在Knockout的帮助下改进网站.

  • db <-namespace
    • tabs [] - > tab
      • ID
      • 标题
      • 类型
      • items [] - > widget
        • ID
        • CSS
        • 有利害关系的人
        • 特定于小部件的viewModel
    • 服务

如果每个"小部件"都是存在于同一个标签(div)中的viewModel,那么我会遇到什么样的问题?

是否可以让一个viewModel从顶部开始并包含其他模型?或者我应该有单独的模型,只需使用ko.applyBindings(vm,element)来应用它们?

knockout.js

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

启动时颤振状态栏颜色

当我的应用程序加载时,它会经历 3 个阶段,我正试图弄清楚如何使它们保持一致。

发射 在此处输入图片说明

Flutter 闪屏? 在此处输入图片说明

主应用程序页面 在此处输入图片说明

我试图让所有这三个成为最后一个(白色标题),但我无法让它工作(尤其是灰色条)

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="LaunchTheme" parent="@android:style/Theme.Black.NoTitleBar">
        <item name="android:windowBackground">@drawable/launch_background</item>
        <!-- <item name="android:windowLightStatusBar">true</item>  -->
        <!-- <item name="android:windowDrawsSystemBarBackgrounds">true</item> -->
        <!-- <item name="android:statusBarColor">@android:color/transparent</item> -->
    </style>
</resources>
Run Code Online (Sandbox Code Playgroud)

无论 statusBarColor 是什么,条形开始为黑色

windowLightStatusBar 将图标变成黑色(感觉像是在进步)

windowDrawSystemBarBackgrounds 确实将栏更改为白色,但是居中的图像向下移动(我想这是有道理的,应用程序不负责该空间?)

如果我使用上述选项,当它从第一阶段切换到第二阶段时,灰色标题仍会出现并且居中的图像会移动。

我目前不知道如何修复灰色标题。

Launch_background.xml

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@android:color/white" />

    <!-- You can insert your own image assets here -->
    <item>
        <bitmap
            android:gravity="center"
            android:src="@drawable/logo" />
    </item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)

安卓清单

<activity
        android:name=".MainActivity"
        android:launchMode="singleTop"
        android:theme="@style/LaunchTheme"
        android:windowSoftInputMode="adjustResize">
        <!-- This keeps the window background of the activity showing
             until …
Run Code Online (Sandbox Code Playgroud)

android flutter

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

从内存映射文件中读取问题

我试图在我的应用程序(特别是Windows服务)中实现内存映射文件,然后使用C#表单从服务写入的MMF读取.不幸的是,我似乎无法从MMF中读取任何内容,更重要的是,表单似乎永远不会找到服务创建的MMF.下面是代码片段,概述了我在做什么,任何人都可以看到我做错了什么或能够指出我更好的方向?

服务:

private MemoryMappedFile mmf = MemoryMappedFile.CreateOrOpen("AuditStream", 1024 * 1024);
private Mutex mutex = new Mutex(false, "MyMutex");

byte[] msg = new byte[1];
var view = mmf.CreateViewStream(0, 1);
byte[] rmsg = new byte[1];

for (int i = 0; i < 400; i++)
{
     mutex.WaitOne();
     for (int j = 0; j < msg.Length; j++)
     {
          msg[j] = (byte)i;
     }

     view.Position = 0;
     view.Write(msg, 0, bufferSize);

     //the next 3 lines verify that i wrote to the mmf and can potentially read from it …
Run Code Online (Sandbox Code Playgroud)

c# ipc shared-memory

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

Xcode 不会与 FLUTTER_BUILD_NAME 一起使用

Xcode 不会使用 $(FLUTTER_BUILD_NAME) 或 $(FLUTTER_BUILD_NUMBER) 进行构建

运行器 -> 目标 -> 构建设置 -> 版本控制

运行器 -> 目标 -> 构建设置 -> 版本控制

跑步者 -> 目标 -> 常规 -> 身份

在此输入图像描述

运行器 -> Flutter -> 生成的.xcconfig

在此输入图像描述

信息列表

在此输入图像描述

有人能看到我在这里做错了什么吗?generated.xcconfig 正确地具有我的 pub spec.yaml 版本中的版本信息:1.0.3+5

但每次构建版本信息都是空的。

xcode flutter

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

Combobox Cascading需要更具体的cascadeFrom选项

我想使用Kendo UI ComboBox的cascadeFrom功能,但令我沮丧的是,该选项似乎只接受ID.现在我无法使用ID,因为组合框是动态添加的,可能是多次,导致多个控件具有相同的ID.

有没有人对如何将特定的dom对象传递给级联或者如何使用'change'事件设置自定义级联功能有任何想法?

kendo-ui

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

MVC 4 Login/SimpleMembership如何工作

我希望将我从ASP.NET Web Forms的项目升级到MVC 4.

在升级过程中,我试图重新评估我们处理身份验证和登录的方式.

目前,当用户尝试登录时,我(前端)调用数据库进行验证,然后以相关的"令牌"回复为yay或nay.然后我必须将该令牌传递到我们网站上的下一页,并将其放入javascript对象中.然后,该令牌随每次ajax调用一起传递,并在每次使用新令牌后更新.我个人在客户端浏览器中管理该令牌.

现在,在MVC 4中,默认的Internet应用程序带有了采用某种形式的本地注册和登录所需的逻辑.但我不明白它是如何工作的.

用户'注册'之后存储在哪里?

当用户登录然后更改页面时,该用户如何保持登录状态?他的凭据如何通过?

在我看来,我们处理登录的当前方式是严重过时和有缺陷的.但此时我不明白如何设置MVC来查看当前(外部,不在此项目中)数据库来验证用户.

我有一本关于MVC 4的书,但它似乎没有详细说明它是如何工作的.

任何帮助,将不胜感激.

谢谢!

c# asp.net asp.net-mvc-4

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

在foreach期间触发Click,但在渲染完成后不会触发

这是一个正在发生的事情.

这不是我正在寻找的行动.

我想要它,以便在表格呈现并且用户点击tr之后,应该显示信息......

在渲染过程中不应调用信息.

谁知道我做错了什么?

编辑 http://jsfiddle.net/yG6Tg/2/

knockout.js

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

序列化/反序列化不同的属性名称?

我有一个旧系统,它在请求信息调用中返回xml,其名称如下所示:

postalCodeField,firstNameField ...

那个系统然后有一个修改调用,它接受xml,如下所示:

PostalCode,fistName,lastName ....

有没有办法构建一个反序列化请求的对象,但是用不同的名称序列化xml输出?

特别:

public class RequestInfo
{
    public string firstNameField{get;set;}
    public string lastNameField{get;set;}
}

public class ModifyInfo
{
    public string firstName{get;set;}
    public string lastName{get;set;}
    public ModifyInfo(){}
    public ModifyInfo(RequestInfo ri)
    {
        firstName = ri.firstNameField
        .....
    }
}
Run Code Online (Sandbox Code Playgroud)

是否有通过说属性的方法使这些成为同一个对象?

编辑

有没有办法让一个对象在反序列化时接受一个标记名称,然后在序列化上输出一个不同的名称?

<myTagField />(反序列化)myObj.MyTag(序列化为)<MyTag />

c# xml serialization deserialization

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

字符串文字仍以双斜线结尾?

我有一小段代码:

public static void Write(string filename){
    string time = DateTime.Now.ToString("hh:mm tt");
    int date = int.Parse(DateTime.Now.ToString("yyyyMMdd"));
    string path = @"C:\Users\Public\" + filename;
}
Run Code Online (Sandbox Code Playgroud)

如果我调试并在路径设置后停止它看起来像 “C:\\\Users\\\Public\\\filename.txt”.

谁能告诉我为什么它有双斜线?'@'在这种情况下,标志是否真的搞乱了?

我怎么可能得到它 “C:\Users\Public\filename.txt”

c# string string-literals

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

常量循环 - 线程与异步,最佳实践

我有一些常见的代码,在我们的一些内部应用程序中,我似乎经常使用它.

public State SomeState { get; set; }
Thread thread = new Thread(ThreadProc)
thread.Start();

void ThreadProc() {
    while(isTrue){
       //Changes SomeState after ping
       //Can take up to 5 seconds to complete if service is unavailable
       PingServiceTocheckState(); 
       UpdateUI();
       Thread.Sleep(200);
    }
}

void UpdateUI() {

    if (InvokeRequired)
    {
        Invoke(new MethodInvoker(UpdateUI));
        return;
    }

    if(SomeState == State.Up){
        //set these UI values (txt.Text = ...)
    }
    ......
}
Run Code Online (Sandbox Code Playgroud)

并且常量操作可以是在窗体上更新UI或者不断地从网络流中读取.

我觉得与TPL和Async相比,这可能已经过时了.

我是否认为使用Async/TPL可以更好地管理它?如果是这样,有人能举例说明我将如何利用这些新想法完成上述工作吗?

*注意:我目前偶尔会使用异步,我试图让它在我的编码中更流行,但我在使用异步创建一个长期运行的"后台线程"的最佳方法上有点迷失.

编辑:

我已经更新了我的示例,其中包含了与我当前项目相关的更多细节.我在UserControl中有类似的代码.然后我有一个Windows窗体,动态添加约50个这些控件.如果没有Thread,表单基本上会挂起,线程一切都运行顺畅.我只想到,而不是自己管理线程async/TPL会比我自己更有效地管理任务(Ping和Update).

c# task-parallel-library async-await

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