我正在使用自定义过滤器检查特定Action的用户访问权限,我有一个名为Admin的区域.当过滤器重定向未授权用户时,其重定向内部区域但不重定向到路径目录中的视图.
例如,当我访问http:// localhost/admin/roles时,我希望未经授权的用户将被重新安装到http:// localhost/authorized但不会被重新安装到http:// localhost/admin/authorized.
这是我如何使用过滤器:
public override void OnAuthorization(AuthorizationContext filterContext)
{
DigitalHubOnlineStoreEntities db = new DigitalHubOnlineStoreEntities();
RbacUser requestingUser = new RbacUser();
var controllerid = RbacUser.GetControllerId(filterContext.ActionDescriptor.ControllerDescriptor.ControllerName);
var actionid = RbacUser.GetActionId(filterContext.ActionDescriptor.ActionName, controllerid);
if (!requestingUser.GetUserPermission(HttpContext.Current.User.Identity.Name, actionid, controllerid))
{
filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary { { "action", "Index" }, { "controller", "Unauthorized" } });
}
}
Run Code Online (Sandbox Code Playgroud) 我正试图以这种方式POST到WebApi后端:
'use strict';
angular.module('auth', []).factory('authService', ['$http', '$q', '$localStorage', function ($http, $q, $localStorage) {
var serviceBase = 'http://localhost:53432/api/';
var authServiceFactory = {};
var authentication = {
isAuth: false,
userName: ""
};
var saveRegistration = function (registration) {
return $http.post(serviceBase + 'account/register', registration).then(function (response) {
return response;
});
};
Run Code Online (Sandbox Code Playgroud)
但我得到错误"message":"The origin 'http://evil.com/' is not allowed."
我明白这与CORS问题有关,所以我在模块中定义$sceDelegateProvider
:
$sceDelegateProvider.resourceUrlWhitelist([
'self',
'http://localhost:53432' //This is webapi url
]);
Run Code Online (Sandbox Code Playgroud)
但这也没有帮助.我该怎么解决这个问题?
在服务器端已启用CORS:
[AllowAnonymous]
[Route("Register")]
[HttpPost]
[EnableCors(origins: "http://localhost:8080", headers: "*", methods: "*")]
public async Task<IHttpActionResult> Register(RegisterBindingModel …
Run Code Online (Sandbox Code Playgroud) 据我所知,BEM根本不使用元素id.但是在这种情况下如何处理带有/ id的标签和输入?如果不使用id,使用屏幕阅读器的人将无法获得该标签用于该输入.我对吗?
当我尝试使用 Google Maps 加载组件时(props 已按预期传递给组件),我只是收到一条消息,说"Loading map..."
但未加载带有标记的地图。控制台中也没有错误。这是组件。我在这里做错了什么?
import React, {Component} from 'react';
import {Map, InfoWindow, Marker, GoogleApiWrapper} from 'google-maps-react';
import { Constants } from './../../utils/constants';
export class MapContainer extends Component {
state = {
selectedPlace: ''
}
onMarkerClick = (e) => {
this.setState({selectedPlace: e.Name});
}
render() {
return (
<Map
google={this.props.google}
style={{width: '20vw', height: '45vh', 'top': '1.5rem'}}
containerStyle={{width: '20vw', height: '30vh'}}
initialCenter={{
lat: this.props.lat,
lng: this.props.lng
}}
zoom={15}>
{this.props.markers.length > 0 && // Rendering multiple markers for
this.props.markers.map((m) => …
Run Code Online (Sandbox Code Playgroud) 这里简单的linq到实体查询返回anonymous type
.问题是其中一个int?
值像参数一样用于获取另一个值int
.
我知道的所有方法都不起作用.请告知如何解决这个问题.
public IQueryable<toursistdata> GetxTouristByCategory(string category)
{
var now = System.DateTime.MinValue;
int i;
switch (category)
{
case "arrival":
now = System.DateTime.Now.AddDays(-3);
var arrival = from a in db.xTourist
where a.ArrDate >= now && a.Room == null
select new toursistdata
{
kodt = a.Kod,
name = a.Name,
paxad = a.Paxad,
paxch = a.Paxch,
**//Here is h.Kod is int but KodH is int?**
hotel = (from h in db.Address where h.Kod = (int)a.KodH.HasValue select h.NameC).FirstOrDefault(), …
Run Code Online (Sandbox Code Playgroud) 我有点困惑,我应该如何实现多个异步任务的worklflow.例如 - Task1启动,当Task1完成,Task2启动,Task2完成启动TaskN等.
或者另一个词 - 异步任务如何通知"父"任务有关他的状态?我想可以在这里使用TaskStatus
但不确定究竟如何.我在MSDN上搜索过,但没有这种模式的完整示例.
PS我编辑我的问题,以便专注于一个特定的问题.
我需要使用局部视图在Layout中渲染菜单(如果有更好的方法,请告诉我)。我这样做(在布局中):
@if (User.IsInRole("Admin"))
{
@Html.Partial("AdminMenu")
}
Run Code Online (Sandbox Code Playgroud)
这就是我在Controller中的称呼方式:
public ActionResult AdminMenu()
{
var am = _amr.GetAdminMenu();
return PartialView(am);
}
Run Code Online (Sandbox Code Playgroud)
所以这是我的部分观点:
@model IEnumerable<DigitalHubOnlineStore.ViewModels.AdminMenuViewModel>
<div class="dropdown">
<button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
Admin menu
<span class="caret"></span>
</button>
<ul class="dropdown-menu" aria-labelledby="dropdownMenu1">
@foreach (var item in Model)
{
<li><a href="@Html.DisplayFor(modelItem => item.MenuItemUrl)">@Html.DisplayFor(modelItem => item.MenuItemName)</a></li>
}
</ul>
</div>
Run Code Online (Sandbox Code Playgroud)
Unfortunately it's not working.
我正在尝试Golang
并尝试连接到 MS SQL。我正在使用github.com/denisenkom/go-mssqldb
package 并sqlx
用于此目的。但我收到错误:Unable to open tcp connection with host 'localhost:1433': dial tcp [::1]:1433: connectex: No connection could be made because the target machine actively refused it
。
我完全确定数据库本身的一切,因为它与我的.Net 项目完美配合。这是代码:
package main
import (
"database/sql"
"fmt"
"log"
_ "github.com/denisenkom/go-mssqldb"
"github.com/jmoiron/sqlx"
)
type Excursion struct {
Id int `db:"id"`
Name sql.NullString `db:"name"`
}
func main() {
db, err := sqlx.Connect("sqlserver", "server=localhost;user id=DESKTOP-H74S9IT\\andrey.shedko;database=Flex;connection timeout=30;")
if err := db.Ping(); err != nil {
log.Fatal(err)
}
rows, …
Run Code Online (Sandbox Code Playgroud) 我的应用程序在本地主机上完美运行和构建。但是当它在 Heroku 上构建时,我收到以下错误:
./src/index.js
Error: Cannot find module '@babel/plugin-proposal-decorators' from '/app'
at Array.map (<anonymous>)
Run Code Online (Sandbox Code Playgroud)
那是我的package.json
:
{
"name": "agroproject-ui",
"version": "0.1.0",
"private": true,
"dependencies": {
"@ckeditor/ckeditor5-build-classic": "^12.0.0",
"@ckeditor/ckeditor5-react": "^1.1.1",
"@fortawesome/fontawesome-svg-core": "^1.2.8",
"@fortawesome/free-solid-svg-icons": "^5.5.0",
"@fortawesome/react-fontawesome": "^0.1.3",
"@pluralsight/ps-design-system-actionmenu": "^3.1.10",
"@pluralsight/ps-design-system-badge": "^2.1.12",
"@pluralsight/ps-design-system-button": "^10.8.15",
"@pluralsight/ps-design-system-card": "^8.5.8",
"@pluralsight/ps-design-system-dropdown": "^0.5.3",
"@pluralsight/ps-design-system-layout": "^3.0.2",
"@pluralsight/ps-design-system-normalize": "^3.0.45",
"@pluralsight/ps-design-system-row": "^2.6.25",
"@pluralsight/ps-design-system-textinput": "^0.5.6",
"@svgr/webpack": "2.4.1",
"@tinymce/tinymce-react": "^3.0.1",
"axios": "^0.18.0",
"babel-eslint": "9.0.0",
"babel-jest": "23.6.0",
"babel-loader": "8.0.4",
"babel-plugin-named-asset-import": "^0.2.2",
"babel-preset-react-app": "^5.0.4",
"bfj": "6.1.1",
"case-sensitive-paths-webpack-plugin": "2.1.2",
"chalk": "2.4.1",
"css-loader": "1.0.0",
"dotenv": "6.0.0", …
Run Code Online (Sandbox Code Playgroud) 我确实检查了这些多个问题,但到目前为止还没有答案。非常简单的正则表达式,在转义点附近给出错误“未终止的正则表达式文字”。正则表达式应该匹配./images/
。
const regex = new RegExp(/\.\/images\/);
const options = {
files: [
'./style/_styles.scss'
],
from: [regex],
to: ['./../dist/primeng-lib/images/']
};
Run Code Online (Sandbox Code Playgroud) 我使用该解决方案菲利普W¯¯从这里.对于单个文件,它可以正常工作.但对于多个文件我得到错误:NetworkError: 500 Internal Server Error
.
Response
Cache-Control no-cache
Content-Length 0
Date Tue, 08 Apr 2014 15:23:07 GMT
Expires -1
Pragma no-cache
Server Microsoft-IIS/8.0
X-AspNet-Version 4.0.30319
X-Powered-By ASP.NET
X-SourceFiles =?UTF-8?B?YzpcdXNlcnNcYW5kcmV5LnNoZWRrb1xkb2N1bWVudHNcdmlzdWFsIHN0dWRpbyAyMDEzXFByb2plY3RzXFBSRVBQXFBSRVBQXGFwaVx1cGxvYWQ=?=
Request
Accept text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8
Accept-Encoding gzip, deflate
Accept-Language en-us,en;q=0.5
Connection keep-alive
Cookie __AntiXsrfToken=b7dbaa70f0cd4c35a8a3a22d75faae03
Host localhost:4955
Referer http://localhost:4955/test.html
User-Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:11.0) Gecko/20100101 Firefox/11.0
Run Code Online (Sandbox Code Playgroud)
简单的html:
<body>
<form action="/api/upload" method="post" enctype="multipart/form-data">
<label for="somefile">File</label>
<input name="somefile" type="file" multiple />
<input type="submit" value="Submit" />
</form>
</body>
Run Code Online (Sandbox Code Playgroud)
我怎样才能解决这个问题?
在我返回的服务方法中Observable
,我试图通过Subject
已完成的操作通知组件.
completed: Subject<boolean>
constructor(private http: Http) {
}
loadItems(): Observable<FrontItemDto[]> {
return this.http.get ( `${ServiceSettings.ApiUrl}/front` )
.map ( res => {
res.json ();
if ( res.json () ) {
this.completed.next ( true );
}
} )
.catch ( (error: any) => Observable.throw ( error.json ().error || 'Server error' ) );
}
Run Code Online (Sandbox Code Playgroud)
这是组件监听的方式Subject
:
ngOnInit(): void {
this.getItems();
this.sub = this.dataService.completed.subscribe(completed => {
if (completed) {
this.show = false;
}
});
}
Run Code Online (Sandbox Code Playgroud)
但我收到的错误是主题(已完成)未定义.我做错了什么?
我正在尝试从配置文件中进行简单的读取设置。这两个文件 - config.json 和 Settings.go,都在同一个文件夹中。但我总是得到"The system cannot find the file specified."
我做错了什么?
func GetDbConnectionString() string {
file, err := os.Open("config.json")
if err != nil {
log.Fatal(err)
}
decoder := json.NewDecoder(file)
settings := Settings{}
err1 := decoder.Decode(&settings)
if err1 != nil {
fmt.Println("error:", err1)
}
log.Print(&settings)
return fmt.Sprintf("%s:%s@/%s", settings.login, settings.password, settings.database)
}
Run Code Online (Sandbox Code Playgroud)
c# ×5
asp.net-mvc ×2
go ×2
angular ×1
angularjs ×1
asp.net ×1
asynchronous ×1
babeljs ×1
bem ×1
cors ×1
heroku ×1
input ×1
javascript ×1
label ×1
linq ×1
nullable ×1
reactjs ×1
regex ×1
rxjs ×1
sql-server ×1
typescript ×1
webpack ×1